mirror of
https://github.com/wekan/wekan.git
synced 2026-11-05 15:45:01 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
736d308860 | ||
|
|
9eca7a3941 | ||
|
|
af436e16c4 | ||
|
|
b1b414e850 | ||
|
|
57da3885a2 | ||
|
|
cb9c897309 | ||
|
|
81f07baeb8 | ||
|
|
001c258f96 | ||
|
|
9d77b9d7b7 | ||
|
|
2242da4176 | ||
|
|
0a3a28ef29 | ||
|
|
dcf5aa65b0 | ||
|
|
dd3be179ca | ||
|
|
bc1f149ea3 | ||
|
|
0dd11ea573 | ||
|
|
5feb83d919 | ||
|
|
8980668686 | ||
|
|
0d4e48ddd6 | ||
|
|
a01b175895 | ||
|
|
83f63c9efa | ||
|
|
3b031bd901 | ||
|
|
e2a7e300c9 | ||
|
|
844f59e12e | ||
|
|
1a3d7b5da4 | ||
|
|
3d2bdf4f22 | ||
|
|
b9fe1f1639 | ||
|
|
a39a7b90b1 | ||
|
|
5d1c979e3b | ||
|
|
d00dc6056b | ||
|
|
878a24f586 | ||
|
|
6d08181edd | ||
|
|
d5596f05b7 | ||
|
|
22b280a18e | ||
|
|
2e7c4ede2a | ||
|
|
ed77abd90d | ||
|
|
45fb547947 | ||
|
|
477ad737d3 | ||
|
|
a2802a850b | ||
|
|
5cbe27be7e | ||
|
|
8b21158736 | ||
|
|
651c6f8fb6 | ||
|
|
5b67312f0f | ||
|
|
1a222c4477 | ||
|
|
ca9bcfa4ee | ||
|
|
4da5b4eb96 | ||
|
|
8c4044ce6c | ||
|
|
b46d9588c7 | ||
|
|
96773e7b1d | ||
|
|
5a80f4f6ce | ||
|
|
b9f9390d04 | ||
|
|
f5a4ece294 | ||
|
|
c1ddf989a2 | ||
|
|
c48ecb1d88 | ||
|
|
c664fe863c | ||
|
|
38f571b388 | ||
|
|
1e7de6d776 | ||
|
|
6d47dc3f4a | ||
|
|
4756ca4226 | ||
|
|
bb440b0d7b | ||
|
|
89cfe1529f | ||
|
|
236fdf9338 | ||
|
|
5c36b2292b | ||
|
|
4eebdb4278 | ||
|
|
4533268418 | ||
|
|
c997c12f88 | ||
|
|
36efd9c988 | ||
|
|
267bfc7229 | ||
|
|
405a7b72e9 | ||
|
|
7d416cc7cc | ||
|
|
7929ab27cb | ||
|
|
7bbd1a3fad | ||
|
|
0f9bd4f9f9 | ||
|
|
a7ce6690a5 | ||
|
|
82bd4ff39d | ||
|
|
721c61bef5 | ||
|
|
7a25546da7 | ||
|
|
2c1d3a3922 | ||
|
|
b4d6cc741c | ||
|
|
5311f80711 | ||
|
|
abed969a96 | ||
|
|
36e3cf30d3 | ||
|
|
eaadbc6dd1 | ||
|
|
0aacc989b7 | ||
|
|
77adfb28c9 | ||
|
|
a9d8261d80 | ||
|
|
df3f519e99 | ||
|
|
d68364befe | ||
|
|
6094979d4e | ||
|
|
ef845fe4a0 | ||
|
|
ce8fc8e392 | ||
|
|
402b79c340 | ||
|
|
08ba9b02f2 | ||
|
|
3a016be97d | ||
|
|
56b09f9102 | ||
|
|
dccf16647a | ||
|
|
9c2ff81b12 | ||
|
|
af8bba27c0 | ||
|
|
8f83ece2ed | ||
|
|
ac8e39daca | ||
|
|
3c07777722 | ||
|
|
0e10d24bef | ||
|
|
4a7df37459 | ||
|
|
f9b5de0e8e | ||
|
|
88f353dc1f | ||
|
|
50525f6fd1 | ||
|
|
219ee659e9 | ||
|
|
f188572b70 | ||
|
|
fb9380c0d0 |
No files matched your search
@@ -38,7 +38,7 @@ jobs:
|
||||
# https://github.com/docker/login-action
|
||||
- name: Log into registry ${{ env.REGISTRY }}
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee
|
||||
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ github.actor }}
|
||||
@@ -48,14 +48,14 @@ jobs:
|
||||
# https://github.com/docker/metadata-action
|
||||
- name: Extract Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9
|
||||
uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302
|
||||
with:
|
||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||
|
||||
# Build and push Docker image with Buildx (don't push on PR)
|
||||
# https://github.com/docker/build-push-action
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf
|
||||
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a
|
||||
with:
|
||||
context: .
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
|
||||
@@ -27,14 +27,14 @@ jobs:
|
||||
cache: 'npm'
|
||||
|
||||
- name: Cache Meteor installation
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: ~/.meteor
|
||||
key: meteor-${{ hashFiles('.meteor/release') }}-${{ hashFiles('.meteor/packages') }}
|
||||
restore-keys: meteor-
|
||||
|
||||
- name: Cache Meteor build (.meteor/local)
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: .meteor/local
|
||||
key: meteor-local-unit-${{ hashFiles('.meteor/versions') }}
|
||||
@@ -98,14 +98,14 @@ jobs:
|
||||
cache: 'npm'
|
||||
|
||||
- name: Cache Meteor installation
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: ~/.meteor
|
||||
key: meteor-${{ hashFiles('.meteor/release') }}-${{ hashFiles('.meteor/packages') }}
|
||||
restore-keys: meteor-
|
||||
|
||||
- name: Cache Meteor build (.meteor/local)
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: .meteor/local
|
||||
key: meteor-local-e2e-${{ hashFiles('.meteor/versions') }}
|
||||
@@ -227,14 +227,14 @@ jobs:
|
||||
cache: 'npm'
|
||||
|
||||
- name: Cache Meteor installation
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: ~/.meteor
|
||||
key: meteor-${{ hashFiles('.meteor/release') }}-${{ hashFiles('.meteor/packages') }}
|
||||
restore-keys: meteor-
|
||||
|
||||
- name: Cache Meteor build (.meteor/local)
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: .meteor/local
|
||||
key: meteor-local-regression-${{ hashFiles('.meteor/versions') }}
|
||||
|
||||
@@ -22,7 +22,9 @@ name: Release All Platforms
|
||||
# commits and pushes the bump to wekan/wekan main
|
||||
# - prepare: tags the bumped main as v<new_version> and extracts release notes
|
||||
# - website: updates the wekan/wekan.fi repo (install page + API docs) and pushes
|
||||
# - charts: updates and publishes the wekan/charts Helm chart and pushes
|
||||
# - charts: updates and publishes the wekan/charts Helm chart and pushes,
|
||||
# only AFTER the `docker` job has published the image (skipped if
|
||||
# docker fails)
|
||||
# - build-*: builds the amd64 bundle (full Meteor 3 build), then rebuilds native
|
||||
# modules for arm64 from that amd64 base
|
||||
# - release: creates the GitHub Release with the newest CHANGELOG.md notes and
|
||||
@@ -210,12 +212,14 @@ jobs:
|
||||
cd ..
|
||||
./wekan/releases/release-website.sh "${{ inputs.old_version }}" "${{ inputs.new_version }}"
|
||||
|
||||
# ─── 1c. Update and publish the Helm chart repo (parallel) ──────────────────
|
||||
# ─── 1c. Update and publish the Helm chart repo (after docker) ──────────────
|
||||
# Bumps the WeKan version in wekan/charts, packages the chart and publishes it
|
||||
# to the gh-pages Helm index, then pushes both branches. Runs in parallel with
|
||||
# the platform builds; packaging the chart does not need the built artifacts.
|
||||
# to the gh-pages Helm index, then pushes both branches. Runs only AFTER the
|
||||
# `docker` job succeeds: the chart points users at the freshly published
|
||||
# multi-arch image, so we don't advertise a new chart version until that image
|
||||
# is actually on the registries. If `docker` fails, this job is skipped.
|
||||
charts:
|
||||
needs: bump
|
||||
needs: docker
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout wekan repo (for releases/release-charts.sh + version refs)
|
||||
@@ -265,14 +269,14 @@ jobs:
|
||||
ref: refs/tags/v${{ needs.prepare.outputs.version }}
|
||||
|
||||
- name: Cache Meteor installation
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: ~/.meteor
|
||||
key: meteor-${{ hashFiles('.meteor/release') }}-${{ hashFiles('.meteor/packages') }}
|
||||
restore-keys: meteor-
|
||||
|
||||
- name: Cache npm packages
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: npm-${{ hashFiles('package-lock.json') }}
|
||||
@@ -796,7 +800,20 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install snapcraft
|
||||
run: sudo snap install snapcraft --classic
|
||||
# The Snap Store intermittently rejects the install with
|
||||
# 'error: cannot install "snapcraft": too many requests' (a 429-style
|
||||
# rate limit) that instantly fails the whole snap job before any build.
|
||||
# Retry a few times so one transient store throttle does not fail the
|
||||
# release (same spirit as the remote-build retry below).
|
||||
run: |
|
||||
set -uo pipefail
|
||||
for i in 1 2 3 4 5; do
|
||||
sudo snap install snapcraft --classic && exit 0
|
||||
echo "snapcraft install attempt $i/5 failed (Snap Store throttle?); retrying in 30s..."
|
||||
sleep 30
|
||||
done
|
||||
echo "::error::snapcraft install failed after 5 attempts (Snap Store rate limit)."
|
||||
exit 1
|
||||
|
||||
- name: Provide Launchpad credentials for remote-build
|
||||
env:
|
||||
|
||||
+8
-8
@@ -6,7 +6,7 @@
|
||||
meteor-base@1.5.2
|
||||
|
||||
# Build system
|
||||
ecmascript@0.18.1-rc350.0
|
||||
ecmascript@0.18.1
|
||||
standard-minifier-js@3.2.0
|
||||
rspack@1.1.0
|
||||
|
||||
@@ -16,11 +16,11 @@ blaze@3.0.2
|
||||
aldeed:collection2
|
||||
aldeed:schema-index@4.0.0-beta.5
|
||||
reywood:publish-composite
|
||||
mongo@2.4.0-rc350.2
|
||||
mongo@2.4.0
|
||||
|
||||
# Account system
|
||||
accounts-password@3.3.0-rc350.2
|
||||
accounts-express@1.0.0-rc350.2
|
||||
accounts-password@3.3.0
|
||||
accounts-express@1.0.0
|
||||
communitypackages:core
|
||||
communitypackages:unstyled
|
||||
communitypackages:flow-routing
|
||||
@@ -37,7 +37,7 @@ wekan-accounts-oidc
|
||||
check@1.5.0
|
||||
random@1.2.2
|
||||
reactive-dict@1.3.2
|
||||
session@1.2.3-rc350.2
|
||||
session@1.2.3
|
||||
tracker@1.3.4
|
||||
audit-argument-checks@1.0.8
|
||||
|
||||
@@ -45,7 +45,7 @@ audit-argument-checks@1.0.8
|
||||
ostrio:i18n
|
||||
reactive-var@1.0.13
|
||||
shell-server@0.7.0
|
||||
email@3.2.0-rc350.2
|
||||
email@3.2.0
|
||||
dynamic-import@0.7.4
|
||||
wekan-markdown
|
||||
quave:synced-cron
|
||||
@@ -55,8 +55,8 @@ ostrio:files
|
||||
meteortesting:mocha@3.0.0
|
||||
matb33:collection-hooks
|
||||
service-configuration@1.3.5
|
||||
minifier-css@2.0.2-rc350.2
|
||||
ejson@1.2.0-rc350.2
|
||||
minifier-css@2.0.2
|
||||
ejson@1.2.0
|
||||
logging@1.3.6
|
||||
wekan-fullcalendar
|
||||
wekan-fontawesome
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
METEOR@3.5-rc.2
|
||||
METEOR@3.5
|
||||
+28
-28
@@ -1,44 +1,44 @@
|
||||
accounts-base@3.3.0-rc350.2
|
||||
accounts-express@1.0.0-rc350.2
|
||||
accounts-oauth@1.4.7-rc350.2
|
||||
accounts-password@3.3.0-rc350.2
|
||||
accounts-base@3.3.0
|
||||
accounts-express@1.0.0
|
||||
accounts-oauth@1.4.7
|
||||
accounts-password@3.3.0
|
||||
aldeed:collection2@4.2.0
|
||||
aldeed:schema-index@4.0.0
|
||||
aldeed:simple-schema@1.13.1
|
||||
allow-deny@2.1.0
|
||||
audit-argument-checks@1.0.8
|
||||
autoupdate@2.0.1
|
||||
babel-compiler@7.14.1-rc350.0
|
||||
babel-compiler@7.14.1
|
||||
babel-runtime@1.5.2
|
||||
base64@1.0.14-rc350.2
|
||||
binary-heap@1.0.13-rc350.2
|
||||
base64@1.0.14
|
||||
binary-heap@1.0.13
|
||||
blaze@3.0.3
|
||||
blaze-tools@2.0.1
|
||||
boilerplate-generator@2.1.0
|
||||
caching-compiler@2.0.1
|
||||
caching-html-compiler@2.0.1
|
||||
callback-hook@1.8.0-rc350.2
|
||||
callback-hook@1.8.0
|
||||
check@1.5.0
|
||||
communitypackages:core@2.0.3
|
||||
communitypackages:flow-routing@2.1.0
|
||||
communitypackages:unstyled@2.0.1
|
||||
core-runtime@1.0.0
|
||||
ddp@1.4.2
|
||||
ddp-client@3.3.0-rc350.2
|
||||
ddp-common@1.4.5-rc350.2
|
||||
ddp-rate-limiter@1.3.0-rc350.2
|
||||
ddp-server@3.3.0-rc350.2
|
||||
ddp-client@3.3.0
|
||||
ddp-common@1.4.5
|
||||
ddp-rate-limiter@1.3.0
|
||||
ddp-server@3.3.0
|
||||
diff-sequence@1.1.3
|
||||
dynamic-import@0.7.4
|
||||
ecmascript@0.18.1-rc350.0
|
||||
ecmascript@0.18.1
|
||||
ecmascript-runtime@0.8.3
|
||||
ecmascript-runtime-client@0.13.0
|
||||
ecmascript-runtime-server@0.11.1
|
||||
ejson@1.2.0-rc350.2
|
||||
email@3.2.0-rc350.2
|
||||
ejson@1.2.0
|
||||
email@3.2.0
|
||||
es5-shim@4.8.1
|
||||
facts-base@1.0.2
|
||||
fetch@0.2.0-rc350.2
|
||||
fetch@0.2.0
|
||||
geojson-utils@1.0.12
|
||||
hot-code-push@1.0.5
|
||||
html-tools@2.0.1
|
||||
@@ -53,23 +53,23 @@ lai:collection-extensions@1.0.0
|
||||
localstorage@1.2.1
|
||||
logging@1.3.6
|
||||
matb33:collection-hooks@2.1.0
|
||||
meteor@2.3.1-rc350.2
|
||||
meteor@2.3.1
|
||||
meteor-base@1.5.2
|
||||
meteortesting:browser-tests@1.8.0
|
||||
meteortesting:mocha@3.3.0
|
||||
meteortesting:mocha-core@8.2.0
|
||||
minifier-css@2.0.2-rc350.2
|
||||
minifier-js@3.2.1-rc350.0
|
||||
minimongo@2.2.0-rc350.2
|
||||
minifier-css@2.0.2
|
||||
minifier-js@3.2.1
|
||||
minimongo@2.2.0
|
||||
modern-browsers@0.2.3
|
||||
modules@0.20.3
|
||||
modules-runtime@0.13.2
|
||||
mongo@2.4.0-rc350.2
|
||||
mongo@2.4.0
|
||||
mongo-decimal@0.2.0
|
||||
mongo-dev-server@1.1.1
|
||||
mongo-id@1.0.9
|
||||
npm-mongo@6.16.1
|
||||
oauth@3.0.4-rc350.2
|
||||
oauth@3.0.4
|
||||
oauth2@1.3.3
|
||||
observe-sequence@2.0.1
|
||||
ordered-dict@1.2.0
|
||||
@@ -82,7 +82,7 @@ promise@1.0.0
|
||||
quave:synced-cron@2.4.0
|
||||
raix:eventemitter@1.0.0
|
||||
random@1.2.2
|
||||
rate-limit@1.2.0-rc350.2
|
||||
rate-limit@1.2.0
|
||||
react-fast-refresh@0.3.0
|
||||
reactive-dict@1.3.2
|
||||
reactive-var@1.0.13
|
||||
@@ -92,10 +92,10 @@ reywood:publish-composite@1.9.0
|
||||
routepolicy@1.1.2
|
||||
rspack@1.1.0
|
||||
service-configuration@1.3.5
|
||||
session@1.2.3-rc350.2
|
||||
session@1.2.3
|
||||
sha@1.0.10
|
||||
shell-server@0.7.0
|
||||
socket-stream-client@0.7.0-rc350.2
|
||||
socket-stream-client@0.7.0
|
||||
spacebars@2.0.1
|
||||
spacebars-compiler@2.0.1
|
||||
standard-minifier-js@3.2.0
|
||||
@@ -105,9 +105,9 @@ templating-runtime@2.0.2
|
||||
templating-tools@2.0.1
|
||||
tools-core@1.1.0
|
||||
tracker@1.3.4
|
||||
typescript@5.10.1-rc350.0
|
||||
url@1.3.6-rc350.2
|
||||
webapp@2.2.0-rc350.2
|
||||
typescript@5.10.1
|
||||
url@1.3.6
|
||||
webapp@2.2.0
|
||||
webapp-hashing@1.1.2
|
||||
wekan-accounts-cas@0.2.0
|
||||
wekan-accounts-lockout@1.1.0
|
||||
|
||||
+8
-1
@@ -1,2 +1,9 @@
|
||||
npm-packages/
|
||||
tests/
|
||||
# Root tests/ holds Playwright specs, Node E2E and node-based unit tests - none
|
||||
# of it is Meteor code, and Meteor's file watcher otherwise churns on the
|
||||
# tests/playwright/test-results/ tree (inotify errors). The leading slash anchors
|
||||
# this to the repo root only, so it does NOT match server/lib/tests/ or
|
||||
# client/lib/tests/ (the Mocha suites, loaded via meteor.testModule in
|
||||
# package.json). A naked "tests/" would match a dir named tests at any depth and
|
||||
# would hide those suites, making `meteor test` report "0 passing".
|
||||
/tests/
|
||||
+572
-142
File diff suppressed because it is too large.
Load diff
+1
-1
@@ -2,10 +2,10 @@
|
||||
|
||||
For all code at WeKan GitHub Organization https://github.com/wekan
|
||||
|
||||
- For pull requests, mention only those participants that are **human**.
|
||||
- All code in pull requests need to have permission already to add it to WeKan with MIT license, and will become MIT license.
|
||||
- For any dependencies, permissive licenses like https://copyfree.org are preferred
|
||||
- For anything currently that is non-permissive (like GPL, AGPL, SSPL), those will be replaced with permissive-licensed alternatives
|
||||
- Any intelligence allowed: Human, AI or any other. No discrimination, please have world peace. Mentioning participants optional.
|
||||
- All code is checked and validated by xet7 and many different security AI. If code is real working fix or feature, it usually will be merged.
|
||||
- All known vulnerabilities have been fixed at newest WeKan, please upgrade https://wekan.fi/upgrade/
|
||||
- There is no known backdoors. If WeKan is installed by someone else, first registered user is Admin and has Admin Panel access.
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ LABEL org.opencontainers.image.source="https://github.com/wekan/wekan"
|
||||
# TARGETARCH and TARGETVARIANT are automatically provided by Docker Buildx
|
||||
ARG TARGETARCH
|
||||
ARG TARGETVARIANT
|
||||
ARG VERSION=9.72
|
||||
ARG VERSION=9.78
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
ENV BUILD_DEPS="apt-utils gnupg wget bzip2 g++ curl libarchive-tools build-essential git ca-certificates python3 unzip"
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v9.72.0"
|
||||
appVersion: "v9.78.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -107,17 +107,17 @@
|
||||
overflow-y: scroll !important;
|
||||
}
|
||||
|
||||
/* Mobile - make all text 2x bigger inside #content by default (icons stay same size) */
|
||||
/* Mobile - keep #content text at normal size (reverted #6426 oversizing) */
|
||||
@media screen and (max-width: 800px),
|
||||
screen and (max-device-width: 800px),
|
||||
screen and (-webkit-min-device-pixel-ratio: 2) and (max-width: 800px),
|
||||
screen and (max-width: 800px) and (orientation: portrait),
|
||||
screen and (max-width: 800px) and (orientation: landscape) {
|
||||
#content {
|
||||
font-size: 2em !important; /* 2x bigger base font size for content area */
|
||||
font-size: 1em !important; /* Normal size (reverted #6426 oversizing) */
|
||||
}
|
||||
|
||||
/* Make all text elements 2x bigger */
|
||||
/* Keep all text elements at normal size */
|
||||
#content h1, #content h2, #content h3, #content h4, #content h5, #content h6,
|
||||
#content p, #content span, #content div, #content a, #content button,
|
||||
#content .minicard, #content .list-header-name, #content .board-header-btn,
|
||||
@@ -186,7 +186,7 @@
|
||||
|
||||
/* Fallback for iPhone devices using JavaScript detection */
|
||||
.iphone-device #content {
|
||||
font-size: 2em !important; /* 2x bigger base font size for content area */
|
||||
font-size: 1em !important; /* Normal size (reverted #6426 oversizing) */
|
||||
}
|
||||
|
||||
.iphone-device #content h1, .iphone-device #content h2, .iphone-device #content h3, .iphone-device #content h4, .iphone-device #content h5, .iphone-device #content h6,
|
||||
@@ -231,9 +231,9 @@
|
||||
font-size: 1em !important; /* Keep original icon size */
|
||||
}
|
||||
|
||||
/* Mobile iPhone: scale card details text and icons to 2x */
|
||||
/* Mobile iPhone: keep card details text/icons at normal size (reverted #6426 oversizing) */
|
||||
body.mobile-mode.iphone-device .card-details {
|
||||
font-size: 2em !important;
|
||||
font-size: 1em !important;
|
||||
}
|
||||
body.mobile-mode.iphone-device .card-details .fa,
|
||||
body.mobile-mode.iphone-device .card-details .icon,
|
||||
|
||||
@@ -2,8 +2,6 @@ import { ReactiveCache } from '/imports/reactiveCache';
|
||||
import { TAPi18n } from '/imports/i18n';
|
||||
import { FlowRouter } from 'meteor/ostrio:flow-router-extra';
|
||||
import getSlug from 'limax';
|
||||
import '/client/lib/dragscrollTouch';
|
||||
import { enablePageDragscroll, disablePageDragscroll } from '/client/lib/pageDragscroll';
|
||||
import TableVisibilityModeSettings from '/models/tableVisibilityModeSettings';
|
||||
import { BoardMultiSelection } from '/client/lib/boardMultiSelection';
|
||||
import { EscapeActions } from '/client/lib/escapeActions';
|
||||
@@ -329,12 +327,9 @@ Template.boardList.onCreated(function () {
|
||||
});
|
||||
|
||||
Template.boardList.onRendered(function () {
|
||||
// Enable drag-to-scroll on the All Boards page the same way the board
|
||||
// canvas/swimlanes do. On desktop the page scroll container is <body>, so we
|
||||
// tag it via enablePageDragscroll(); the .board-list.dragscroll element only
|
||||
// becomes a scroll container in mobile view, where its own class handles it.
|
||||
// Finger drag-scrolling is handled by dragscrollTouch.js.
|
||||
enablePageDragscroll();
|
||||
// Drag-to-scroll on the All Boards page is handled centrally for all
|
||||
// non-board pages by defaultLayout's route-aware autorun
|
||||
// (see client/components/main/layouts.js).
|
||||
|
||||
// jQuery sortable is disabled in favor of HTML5 drag-and-drop for space management
|
||||
// The old sortable code has been removed to prevent conflicts
|
||||
@@ -380,13 +375,6 @@ Template.boardList.onRendered(function () {
|
||||
*/
|
||||
});
|
||||
|
||||
Template.boardList.onDestroyed(function () {
|
||||
// Stop tagging <body> as drag-scrollable when leaving the All Boards page so
|
||||
// other layouts (e.g. a board view, whose canvas does its own dragscroll) are
|
||||
// not affected.
|
||||
disablePageDragscroll();
|
||||
});
|
||||
|
||||
Template.boardList.helpers({
|
||||
userHasTeams() {
|
||||
if (ReactiveCache.getCurrentUser()?.teams?.length > 0) return true;
|
||||
|
||||
@@ -1087,3 +1087,14 @@ body.mobile-mode .card-details .card-details-header .close-card-details-mobile-w
|
||||
line-height: 1;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* #6431 follow-up: cover image on the opened card (Card Settings > Cover image
|
||||
on card, opt-in). Mirrors the minicard cover but taller. */
|
||||
.card-details-cover {
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
height: 200px;
|
||||
user-select: none;
|
||||
margin: 8px 0;
|
||||
}
|
||||
@@ -112,6 +112,11 @@ template(name="cardDetails")
|
||||
i.fa.fa-check
|
||||
span {{_ 'upload-completed'}}
|
||||
|
||||
//- #6431 follow-up: cover image on the opened card (opt-in, OFF by default).
|
||||
if currentBoard.allowsCoverAttachmentOnCard
|
||||
if cover
|
||||
.card-details-cover(style="background-image: url('{{cover.link 'original'}}');")
|
||||
|
||||
.card-details-left
|
||||
|
||||
.card-details-items
|
||||
@@ -684,6 +689,14 @@ template(name="cardDetails")
|
||||
.card-checklist-attachmentGallery.card-checklists
|
||||
if currentBoard.allowsChecklists
|
||||
hr
|
||||
//- Total checklist item count (finished/total) shown above all
|
||||
checklists. The board flag is a cheap boolean, so when it is off
|
||||
the checklist counting below is never evaluated.
|
||||
if currentBoard.allowsChecklistCountBadgeOnCard
|
||||
if checklists.length
|
||||
h3.card-details-item-title
|
||||
i.fa.fa-check-square-o
|
||||
| {{checklistFinishedCount}}/{{checklistItemCount}}
|
||||
+checklists(cardId = _id card = this)
|
||||
if currentBoard.allowsSubtasks
|
||||
hr
|
||||
@@ -693,6 +706,8 @@ template(name="cardDetails")
|
||||
h3.card-details-item-title
|
||||
i.fa.fa-paperclip
|
||||
| {{_ 'attachments'}}
|
||||
if currentBoard.allowsAttachmentCountOnCard
|
||||
| ({{attachments.length}})
|
||||
if Meteor.settings.public.attachmentsUploadMaxSize
|
||||
| {{_ 'max-upload-filesize'}} {{Meteor.settings.public.attachmentsUploadMaxSize}}
|
||||
br
|
||||
|
||||
@@ -51,6 +51,7 @@ import Lists from '/models/lists';
|
||||
import CardComments from '/models/cardComments';
|
||||
import { ALLOWED_COLORS } from '/config/const';
|
||||
import { uniqBy } from '/imports/lib/collectionHelpers';
|
||||
import { memberTargetBoardId } from '/models/lib/linkedCardMembers';
|
||||
import { UserAvatar } from '../users/userAvatar';
|
||||
import { Filter } from '/client/lib/filter';
|
||||
import { BoardSwimlaneListCardDialog } from '/client/lib/dialogWithBoardSwimlaneListCard';
|
||||
@@ -1657,7 +1658,25 @@ Template.cardLocationsPopup.events({
|
||||
});
|
||||
|
||||
const filterMembers = (filterTerm) => {
|
||||
let currBoard = Utils.getCurrentBoard();
|
||||
// #5676: for a linked card the members live on the REAL card it points at,
|
||||
// which may be on another board (that is what getMembers()/toggleMember() act
|
||||
// on). Offer that board's members instead of the viewing board's, so the
|
||||
// picker is consistent with where membership is actually stored. Falls back to
|
||||
// the current board for normal cards or when the real card isn't loaded yet.
|
||||
const card = getCurrentCardFromContext();
|
||||
let currBoard = null;
|
||||
if (card) {
|
||||
const boardId = memberTargetBoardId(card, id => ReactiveCache.getCard(id));
|
||||
if (boardId) {
|
||||
currBoard = ReactiveCache.getBoard(boardId);
|
||||
}
|
||||
}
|
||||
if (!currBoard) {
|
||||
currBoard = Utils.getCurrentBoard();
|
||||
}
|
||||
if (!currBoard) {
|
||||
return [];
|
||||
}
|
||||
let members = currBoard.activeMembers();
|
||||
|
||||
if (filterTerm) {
|
||||
|
||||
@@ -215,6 +215,15 @@ template(name="minicard")
|
||||
i.fa.fa-globe
|
||||
span.badge-text.check-list-text {{subtasksFinishedCount}}/{{allSubtasksCount}}
|
||||
//{{subtasksFinishedCount}}/{{subtasksCount}} does not work because when a subtaks is archived, the count goes down
|
||||
//- #6431: compact checklist item-count badge (finished/total). The outer
|
||||
guard is a cheap boolean, so when the setting is off the checklist
|
||||
counting below never runs.
|
||||
if showChecklistCountBadge
|
||||
if checklists.length
|
||||
.badge(class="{{#if checklistFinished}}is-finished{{/if}}" title="{{_ 'checklists'}}")
|
||||
span.badge-icon
|
||||
i.fa.fa-check-square-o
|
||||
span.badge-text.check-list-text {{checklistFinishedCount}}/{{checklistItemCount}}
|
||||
if currentBoard.allowsCardSortingByNumber
|
||||
if currentBoard.allowsCardSortingByNumberOnMinicard
|
||||
.badge
|
||||
|
||||
@@ -144,6 +144,14 @@ Template.minicard.helpers({
|
||||
const board = this.board();
|
||||
return getMinicardFlag(board, 'allowsSubtasksOnMinicard', 'allowsSubtasks', true);
|
||||
},
|
||||
// #6431: compact checklist item-count badge (finished/total) on the minicard.
|
||||
// Opt-in, OFF by default. Only a cheap boolean read here; the actual checklist
|
||||
// counting (checklistFinishedCount/checklistItemCount) is gated behind this in
|
||||
// the template, so a board with the badge off spends no resources counting.
|
||||
showChecklistCountBadge() {
|
||||
const board = this.board();
|
||||
return !!(board && board.allowsChecklistCountBadgeOnMinicard);
|
||||
},
|
||||
|
||||
hiddenMinicardLabelText() {
|
||||
const currentUser = ReactiveCache.getCurrentUser();
|
||||
|
||||
@@ -9,6 +9,7 @@ import Swimlanes from '/models/swimlanes';
|
||||
import { Filter } from '/client/lib/filter';
|
||||
import { MultiSelection } from '/client/lib/multiSelection';
|
||||
import { Utils } from '/client/lib/utils';
|
||||
import { isLinkableCardTarget } from '/models/lib/linkedCardTarget';
|
||||
import autosize from 'autosize';
|
||||
|
||||
// SubsManager removed for Meteor 3 migration
|
||||
@@ -706,7 +707,10 @@ Template.linkCardPopup.helpers({
|
||||
archived: false,
|
||||
linkedId: { $nin: ownCardsIds },
|
||||
_id: { $nin: ownCardsIds },
|
||||
type: { $nin: ['template-card'] },
|
||||
// #5808: never offer an existing linked card/board as a link target —
|
||||
// linking to one builds a chain of linkedId pointers that renders the
|
||||
// card inaccessible. Only real cards may be linked.
|
||||
type: { $nin: ['template-card', 'cardType-linkedCard', 'cardType-linkedBoard'] },
|
||||
};
|
||||
if (tpl.selectedBoardId.get()) selector.boardId = tpl.selectedBoardId.get();
|
||||
if (tpl.selectedSwimlaneId.get()) selector.swimlaneId = tpl.selectedSwimlaneId.get();
|
||||
@@ -790,6 +794,17 @@ Template.linkCardPopup.events({
|
||||
Popup.back();
|
||||
return;
|
||||
}
|
||||
// #5808: refuse to link to a linked card/board or to a card that links back
|
||||
// to this board — those build a chain/cycle of linkedId pointers that renders
|
||||
// the cards inaccessible. The <select> already filters these out, but its
|
||||
// options can be stale, so re-check the resolved target here.
|
||||
const targetCard = ReactiveCache.getCard(linkedId);
|
||||
const ownCardsIds = tpl.board.cards().map(card => card.getRealId());
|
||||
if (!isLinkableCardTarget(targetCard, ownCardsIds)) {
|
||||
alert(TAPi18n.__('error-linked-card-not-allowed'));
|
||||
Popup.back();
|
||||
return;
|
||||
}
|
||||
const nextCardNumber = await tpl.board.getNextCardNumber();
|
||||
const sortIndex = tpl.getSortIndex();
|
||||
const _id = Cards.insert({
|
||||
|
||||
@@ -558,7 +558,7 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
}
|
||||
}
|
||||
|
||||
/* Mobile - make all text and icons 2x bigger above #content by default */
|
||||
/* Mobile - keep header text/icons at normal size (reverted #6426 oversizing) */
|
||||
@media screen and (max-width: 800px),
|
||||
screen and (max-device-width: 800px),
|
||||
screen and (-webkit-min-device-pixel-ratio: 2) and (max-width: 800px),
|
||||
@@ -573,7 +573,7 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
overflow: hidden !important; /* Prevent content overflow */
|
||||
}
|
||||
#header-quick-access {
|
||||
font-size: 2em !important; /* 2x bigger base font size */
|
||||
font-size: 1em !important; /* Normal size (reverted #6426 oversizing) */
|
||||
}
|
||||
|
||||
#header-quick-access * {
|
||||
@@ -582,7 +582,7 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
|
||||
#header-quick-access .fa,
|
||||
#header-quick-access .icon {
|
||||
font-size: 2em !important; /* 2x bigger icons */
|
||||
font-size: 1em !important; /* Normal icon size (reverted #6426 oversizing) */
|
||||
}
|
||||
|
||||
#header-quick-access .home-icon a {
|
||||
@@ -652,7 +652,7 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
}
|
||||
}
|
||||
|
||||
/* Mobile All Boards page - make logo row elements 2x bigger */
|
||||
/* Mobile All Boards page - keep logo row at normal size (reverted #6426 oversizing) */
|
||||
@media screen and (max-width: 800px),
|
||||
screen and (max-device-width: 800px),
|
||||
screen and (-webkit-min-device-pixel-ratio: 2) and (max-width: 800px),
|
||||
@@ -660,16 +660,16 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
screen and (max-width: 800px) and (orientation: landscape) {
|
||||
.wrapper ~ #header-quick-access,
|
||||
body:not(.board-view) #header-quick-access {
|
||||
font-size: 2em !important; /* 2x bigger base font size for logo row */
|
||||
font-size: 1em !important; /* Normal size (reverted #6426 oversizing) */
|
||||
}
|
||||
|
||||
/* iPhone 12 Mini specific - 3x bigger for All Boards page */
|
||||
/* iPhone 12 Mini specific - keep All Boards logo row at normal size (reverted #6426) */
|
||||
@media screen and (device-width: 375px) and (device-height: 812px), /* iPhone 12 Mini exact */
|
||||
screen and (max-width: 375px) and (max-height: 812px), /* iPhone 12 Mini viewport */
|
||||
screen and (-webkit-min-device-pixel-ratio: 3) and (max-width: 375px) /* iPhone 12 Mini Retina */ {
|
||||
.wrapper ~ #header-quick-access,
|
||||
body:not(.board-view) #header-quick-access {
|
||||
font-size: 3em !important; /* 3x bigger base font size for iPhone 12 Mini All Boards page */
|
||||
font-size: 1em !important; /* Normal size (reverted #6426 oversizing) */
|
||||
}
|
||||
}
|
||||
|
||||
@@ -682,7 +682,7 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
.wrapper ~ #header-quick-access .icon,
|
||||
body:not(.board-view) #header-quick-access .fa,
|
||||
body:not(.board-view) #header-quick-access .icon {
|
||||
font-size: 2em !important; /* 2x bigger icons in logo row */
|
||||
font-size: 1em !important; /* Normal icon size (reverted #6426 oversizing) */
|
||||
}
|
||||
|
||||
.wrapper ~ #header-quick-access .home-icon a,
|
||||
@@ -741,19 +741,19 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
}
|
||||
}
|
||||
|
||||
/* iPhone 12 Mini specific - make header elements 3x bigger */
|
||||
/* iPhone 12 Mini specific - keep the header a normal compact single row */
|
||||
@media screen and (device-width: 375px) and (device-height: 812px), /* iPhone 12 Mini exact */
|
||||
screen and (max-width: 375px) and (max-height: 812px), /* iPhone 12 Mini viewport */
|
||||
screen and (-webkit-min-device-pixel-ratio: 3) and (max-width: 375px), /* iPhone 12 Mini Retina */
|
||||
screen and (max-width: 375px) and (orientation: portrait), /* iPhone 12 Mini portrait */
|
||||
screen and (max-width: 375px) and (orientation: landscape) /* iPhone 12 Mini landscape */ {
|
||||
#header-quick-access {
|
||||
font-size: 3em !important; /* 3x bigger base font size for iPhone 12 Mini */
|
||||
height: auto !important; /* Allow height to grow */
|
||||
min-height: 84px !important; /* Much taller minimum height for iPhone 12 Mini */
|
||||
flex-wrap: wrap !important; /* Force wrapping */
|
||||
align-items: flex-start !important; /* Align to top when wrapping */
|
||||
padding: 18px 0px !important; /* More padding for iPhone 12 Mini */
|
||||
font-size: 1em !important; /* Normal size (reverted #6426 oversizing) */
|
||||
height: 48px !important;
|
||||
min-height: 48px !important;
|
||||
flex-wrap: nowrap !important;
|
||||
align-items: center !important;
|
||||
padding: 8px 0px !important;
|
||||
}
|
||||
|
||||
#header-quick-access * {
|
||||
@@ -762,7 +762,7 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
|
||||
#header-quick-access .fa,
|
||||
#header-quick-access .icon {
|
||||
font-size: 3em !important; /* 3x bigger icons for iPhone 12 Mini */
|
||||
font-size: 1em !important; /* Normal icon size (reverted #6426 oversizing) */
|
||||
}
|
||||
|
||||
#header-quick-access .home-icon a {
|
||||
@@ -848,7 +848,7 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
}
|
||||
}
|
||||
|
||||
/* iPhone 12 Mini and very small screens - make header elements much larger */
|
||||
/* iPhone 12 Mini and very small screens - header element sizing */
|
||||
@media screen and (max-width: 400px) and (max-height: 900px),
|
||||
screen and (max-device-width: 400px) and (max-device-height: 900px),
|
||||
screen and (-webkit-min-device-pixel-ratio: 2) and (max-width: 400px),
|
||||
@@ -912,12 +912,12 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
|
||||
/* Fallback for iPhone devices using JavaScript detection */
|
||||
.iphone-device #header-quick-access {
|
||||
font-size: 2em !important; /* 2x bigger base font size */
|
||||
height: auto !important; /* Allow height to grow */
|
||||
min-height: 48px !important; /* Minimum height for mobile */
|
||||
flex-wrap: wrap !important; /* Force wrapping */
|
||||
align-items: flex-start !important; /* Align to top when wrapping */
|
||||
padding: 8px 0px !important; /* Adjust padding for mobile */
|
||||
font-size: 1em !important; /* Normal size (reverted #6426 oversizing) */
|
||||
height: 48px !important;
|
||||
min-height: 48px !important;
|
||||
flex-wrap: nowrap !important;
|
||||
align-items: center !important;
|
||||
padding: 8px 0px !important;
|
||||
}
|
||||
|
||||
.iphone-device #header-quick-access * {
|
||||
@@ -926,7 +926,7 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
|
||||
.iphone-device #header-quick-access .fa,
|
||||
.iphone-device #header-quick-access .icon {
|
||||
font-size: 2em !important; /* 2x bigger icons */
|
||||
font-size: 1em !important; /* Normal icon size (reverted #6426 oversizing) */
|
||||
}
|
||||
|
||||
.iphone-device #header-quick-access .home-icon a {
|
||||
@@ -995,14 +995,14 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
/* iPhone 12 Mini specific - JavaScript detection fallback */
|
||||
/* iPhone 12 Mini specific - JavaScript detection fallback (normal compact row) */
|
||||
.iphone-device #header-quick-access {
|
||||
font-size: 3em !important; /* 3x bigger base font size for iPhone 12 Mini */
|
||||
height: auto !important; /* Allow height to grow */
|
||||
min-height: 84px !important; /* Much taller minimum height for iPhone 12 Mini */
|
||||
flex-wrap: wrap !important; /* Force wrapping */
|
||||
align-items: flex-start !important; /* Align to top when wrapping */
|
||||
padding: 18px 0px !important; /* More padding for iPhone 12 Mini */
|
||||
font-size: 1em !important; /* Normal size (reverted #6426 oversizing) */
|
||||
height: 48px !important;
|
||||
min-height: 48px !important;
|
||||
flex-wrap: nowrap !important;
|
||||
align-items: center !important;
|
||||
padding: 8px 0px !important;
|
||||
}
|
||||
|
||||
.iphone-device #header-quick-access * {
|
||||
@@ -1011,7 +1011,7 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
|
||||
.iphone-device #header-quick-access .fa,
|
||||
.iphone-device #header-quick-access .icon {
|
||||
font-size: 3em !important; /* 3x bigger icons for iPhone 12 Mini */
|
||||
font-size: 1em !important; /* Normal icon size (reverted #6426 oversizing) */
|
||||
}
|
||||
|
||||
.iphone-device #header-quick-access .home-icon a {
|
||||
@@ -1096,10 +1096,10 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
/* iPhone 12 Mini All Boards page - make logo row elements 3x bigger */
|
||||
/* iPhone 12 Mini All Boards page - keep logo row at normal size (reverted #6426) */
|
||||
.iphone-device .wrapper ~ #header-quick-access,
|
||||
.iphone-device body:not(.board-view) #header-quick-access {
|
||||
font-size: 3em !important; /* 3x bigger base font size for logo row */
|
||||
font-size: 1em !important; /* Normal size (reverted #6426 oversizing) */
|
||||
}
|
||||
|
||||
.iphone-device .wrapper ~ #header-quick-access *,
|
||||
@@ -1111,7 +1111,7 @@ body:not(.board-view) #header #header-main-bar h1 {
|
||||
.iphone-device .wrapper ~ #header-quick-access .icon,
|
||||
.iphone-device body:not(.board-view) #header-quick-access .fa,
|
||||
.iphone-device body:not(.board-view) #header-quick-access .icon {
|
||||
font-size: 2em !important; /* 2x bigger icons in logo row */
|
||||
font-size: 1em !important; /* Normal icon size (reverted #6426 oversizing) */
|
||||
}
|
||||
|
||||
.iphone-device .wrapper ~ #header-quick-access .home-icon a,
|
||||
|
||||
@@ -52,6 +52,13 @@ Template.userFormsLayout.onRendered(() => {
|
||||
// gesture works the same as on the board swimlanes view.
|
||||
enablePageDragscroll();
|
||||
|
||||
// Mark the auth pages so CSS can let <body> scroll as a normal document.
|
||||
// body.mobile-mode locks <body> to position:fixed/100vh (an iOS board-view
|
||||
// anti-bounce fix); without an inner #content scroller that traps these pages
|
||||
// at viewport height, hiding the sign-up link / language selector below the
|
||||
// form (and they sit behind the on-screen keyboard). See userForm.css.
|
||||
document.body.classList.add('userform-layout');
|
||||
|
||||
Meteor.call('getAuthenticationsEnabled', (_, result) => {
|
||||
let enabledAuthenticationMethods = ['password']; // we show/hide this based on isPasswordLoginEnabled
|
||||
|
||||
@@ -200,6 +207,7 @@ Template.userFormsLayout.onDestroyed(() => {
|
||||
// Stop drag-scrolling <body> after leaving login / register (e.g. once logged
|
||||
// in) so other layouts keep their normal behaviour.
|
||||
disablePageDragscroll();
|
||||
document.body.classList.remove('userform-layout');
|
||||
});
|
||||
|
||||
Template.userFormsLayout.helpers({
|
||||
@@ -314,6 +322,31 @@ Template.defaultLayout.onRendered(function () {
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Drag-to-scroll for every whole-page layout rendered inside defaultLayout
|
||||
// (All Boards, My Cards, Due Cards, Global Search, Public, Bookmarks, Broken
|
||||
// Cards, Settings, People, Admin, Import, board Rules, …). These pages scroll
|
||||
// <body> on desktop and #content in mobile mode (where <body> is
|
||||
// position:fixed), so enablePageDragscroll() tags whichever element actually
|
||||
// scrolls. The board-canvas pages are the exception: their own
|
||||
// `.board-canvas.dragscroll` handles dragging, and the canvas does its own
|
||||
// vertical/horizontal scroll, so page-level tagging is turned off there to
|
||||
// avoid scrolling #content and the canvas at the same time. defaultLayout is
|
||||
// persistent (only its `content` swaps), so this single autorun covers every
|
||||
// route without per-template wiring. Login / Register use userFormsLayout and
|
||||
// keep their own enable/disable. Works the same in mobile and desktop mode.
|
||||
const boardCanvasRoutes = ['board', 'board-short', 'card'];
|
||||
this.autorun(() => {
|
||||
FlowRouter.watchPathChange();
|
||||
const onBoardCanvas = boardCanvasRoutes.includes(FlowRouter.getRouteName());
|
||||
Tracker.afterFlush(() => {
|
||||
if (onBoardCanvas) {
|
||||
disablePageDragscroll();
|
||||
} else {
|
||||
enablePageDragscroll();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
async function authentication(event, templateInstance) {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { CardSearchPaged } from '../../lib/cardSearch';
|
||||
import { Utils } from '/client/lib/utils';
|
||||
import { enablePageDragscroll, disablePageDragscroll } from '/client/lib/pageDragscroll';
|
||||
|
||||
Template.myCardsHeaderBar.helpers({
|
||||
myCardsSort() {
|
||||
@@ -41,15 +40,8 @@ Template.myCards.onCreated(function () {
|
||||
Meteor.subscribe('setting');
|
||||
});
|
||||
|
||||
Template.myCards.onRendered(function () {
|
||||
// My Cards renders into <body>'s page scroll area (.wrapper inside #content),
|
||||
// so enable drag-to-scroll on <body> like the All Boards page does.
|
||||
enablePageDragscroll();
|
||||
});
|
||||
|
||||
Template.myCards.onDestroyed(function () {
|
||||
disablePageDragscroll();
|
||||
});
|
||||
// Drag-to-scroll is handled centrally for all non-board pages by
|
||||
// defaultLayout's route-aware autorun (see client/components/main/layouts.js).
|
||||
|
||||
Template.myCards.helpers({
|
||||
userId() {
|
||||
|
||||
@@ -4,6 +4,7 @@ import Actions from '/models/actions';
|
||||
import Rules from '/models/rules';
|
||||
import Triggers from '/models/triggers';
|
||||
import { Utils } from '/client/lib/utils';
|
||||
import { canSelectBoardInRules } from '/models/lib/rulesBoardSelector';
|
||||
|
||||
Template.boardActions.onCreated(function () {
|
||||
this.subscribe('boards');
|
||||
@@ -11,19 +12,30 @@ Template.boardActions.onCreated(function () {
|
||||
|
||||
Template.boardActions.helpers({
|
||||
boards() {
|
||||
const ret = ReactiveCache.getBoards(
|
||||
{
|
||||
archived: false,
|
||||
'members.userId': Meteor.userId(),
|
||||
_id: {
|
||||
$ne: ReactiveCache.getCurrentUser().getTemplatesBoardId(),
|
||||
},
|
||||
},
|
||||
// #5698: don't restrict to boards where the user is a DIRECT member — that
|
||||
// hid every board reached through an Organization / Team / email-domain
|
||||
// share (the reporter's whole board dropdown was empty, current board
|
||||
// included). Filter the already access-scoped client cache with the same
|
||||
// visibility rule as Boards.userBoards() so org/team/domain boards show too.
|
||||
const user = ReactiveCache.getCurrentUser();
|
||||
if (!user) return [];
|
||||
const ctx = {
|
||||
userId: user._id,
|
||||
orgIds: typeof user.orgIds === 'function' ? user.orgIds() : [],
|
||||
teamIds: typeof user.teamIds === 'function' ? user.teamIds() : [],
|
||||
emailDomains:
|
||||
typeof user.emailDomains === 'function' ? user.emailDomains() : [],
|
||||
};
|
||||
const templatesBoardId = user.getTemplatesBoardId();
|
||||
const boards = ReactiveCache.getBoards(
|
||||
{ archived: false },
|
||||
{
|
||||
sort: { sort: 1 /* boards default sorting */ },
|
||||
},
|
||||
);
|
||||
return ret;
|
||||
return boards.filter(board =>
|
||||
canSelectBoardInRules(board, ctx, templatesBoardId),
|
||||
);
|
||||
},
|
||||
|
||||
loadingBoardsLabel() {
|
||||
|
||||
@@ -6,6 +6,7 @@ import AccessibilitySettings from '/models/accessibilitySettings';
|
||||
import AccountSettings from '/models/accountSettings';
|
||||
import Announcements from '/models/announcements';
|
||||
import Settings from '/models/settings';
|
||||
import { resolveDefaultAuthenticationMethod } from '/models/lib/authenticationMethod';
|
||||
import TableVisibilityModeSettings from '/models/tableVisibilityModeSettings';
|
||||
// import {
|
||||
// cronMigrationProgress,
|
||||
@@ -803,7 +804,17 @@ Template.setting.events({
|
||||
$('input[name=hideBoardMemberList]:checked').val() === 'true';
|
||||
const displayAuthenticationMethod =
|
||||
$('input[name=displayAuthenticationMethod]:checked').val() === 'true';
|
||||
const defaultAuthenticationMethod = $('#defaultAuthenticationMethod').val();
|
||||
// #5879: the <select> options are populated by an async Meteor.call, so its
|
||||
// value can still be '' / null when Save is clicked. Saving that empty value
|
||||
// over the required `defaultAuthenticationMethod` string silently failed
|
||||
// validation, so the Layout save looked like it hung / did nothing. Fall back
|
||||
// to the currently stored method so a real value is never overwritten by ''.
|
||||
const currentDefaultAuthenticationMethod =
|
||||
ReactiveCache.getCurrentSetting()?.defaultAuthenticationMethod;
|
||||
const defaultAuthenticationMethod = resolveDefaultAuthenticationMethod(
|
||||
$('#defaultAuthenticationMethod').val(),
|
||||
currentDefaultAuthenticationMethod,
|
||||
);
|
||||
const spinnerName = ($('#spinnerName').val() || '').trim();
|
||||
|
||||
try {
|
||||
|
||||
@@ -82,6 +82,14 @@ body.grey-icons-enabled .boardSubtaskSettingsPopup .materialCheckBox.is-checked
|
||||
grid-template-columns: 1fr 1fr 2fr;
|
||||
gap: 10px;
|
||||
margin-bottom: 10px;
|
||||
/* Keep the "Show on Card / Show on Minicard / Description" titles visible
|
||||
while the rows below scroll (the popup scrolls in .pop-over .content-wrapper). */
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 2;
|
||||
background: #fff;
|
||||
padding: 5px 0;
|
||||
border-bottom: 2px solid #ddd;
|
||||
}
|
||||
|
||||
.card-settings-row {
|
||||
|
||||
@@ -315,21 +315,12 @@ template(name="boardCardSettingsPopup")
|
||||
a.flex.js-field-has-creator(title="{{_ 'creator'}}" class="{{#if allowsCreator}}is-checked{{/if}}")
|
||||
i.fa(class="{{#if allowsCreator}}fa-check{{else}}fa-square-o{{/if}}")
|
||||
.card-settings-column
|
||||
span
|
||||
.card-settings-column
|
||||
span
|
||||
i.fa.fa-user
|
||||
| {{_ 'creator'}}
|
||||
.card-settings-row
|
||||
.card-settings-column
|
||||
span
|
||||
.card-settings-column
|
||||
a.flex.js-field-has-creator-on-minicard(title="{{_ 'creator-on-minicard'}}" class="{{#if allowsCreatorOnMinicard}}is-checked{{/if}}")
|
||||
a.flex.js-field-has-creator-on-minicard(title="{{_ 'creator'}}" class="{{#if allowsCreatorOnMinicard}}is-checked{{/if}}")
|
||||
i.fa(class="{{#if allowsCreatorOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
|
||||
.card-settings-column
|
||||
span
|
||||
i.fa.fa-user
|
||||
| {{_ 'creator-on-minicard'}}
|
||||
| {{_ 'creator'}}
|
||||
.card-settings-row
|
||||
.card-settings-column
|
||||
a.flex.js-field-has-assignee(title="{{_ 'assignee'}}" class="{{#if allowsAssignee}}is-checked{{/if}}")
|
||||
@@ -369,27 +360,19 @@ template(name="boardCardSettingsPopup")
|
||||
a.flex.js-field-has-card-sorting-by-number(title="{{_ 'card-sorting-by-number'}}" class="{{#if allowsCardSortingByNumber}}is-checked{{/if}}")
|
||||
i.fa(class="{{#if allowsCardSortingByNumber}}fa-check{{else}}fa-square-o{{/if}}")
|
||||
.card-settings-column
|
||||
span
|
||||
a.flex.js-field-has-card-sorting-by-number-on-minicard(title="{{_ 'card-sorting-by-number'}}" class="{{#if allowsCardSortingByNumberOnMinicard}}is-checked{{/if}}")
|
||||
i.fa(class="{{#if allowsCardSortingByNumberOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
|
||||
.card-settings-column
|
||||
span
|
||||
i.fa.fa-sort-numeric-asc
|
||||
| {{_ 'card-sorting-by-number'}}
|
||||
.card-settings-row
|
||||
.card-settings-column
|
||||
span
|
||||
.card-settings-column
|
||||
a.flex.js-field-has-card-sorting-by-number-on-minicard(title="{{_ 'card-sorting-by-number-on-minicard'}}" class="{{#if allowsCardSortingByNumberOnMinicard}}is-checked{{/if}}")
|
||||
i.fa(class="{{#if allowsCardSortingByNumberOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
|
||||
.card-settings-column
|
||||
span
|
||||
i.fa.fa-sort-numeric-asc
|
||||
| {{_ 'card-sorting-by-number-on-minicard'}}
|
||||
.card-settings-row
|
||||
.card-settings-column
|
||||
a.flex.js-field-has-card-show-lists(title="{{_ 'card-show-lists'}}" class="{{#if allowsShowLists}}is-checked{{/if}}")
|
||||
i.fa(class="{{#if allowsShowLists}}fa-check{{else}}fa-square-o{{/if}}")
|
||||
.card-settings-column
|
||||
span
|
||||
a.flex.js-field-has-card-show-lists-on-minicard(title="{{_ 'card-show-lists'}}" class="{{#if allowsShowListsOnMinicard}}is-checked{{/if}}")
|
||||
i.fa(class="{{#if allowsShowListsOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
|
||||
.card-settings-column
|
||||
span
|
||||
i.fa.fa-list
|
||||
@@ -405,16 +388,6 @@ template(name="boardCardSettingsPopup")
|
||||
span
|
||||
i.fa.fa-tag
|
||||
| {{_ 'labels'}}
|
||||
.card-settings-row
|
||||
.card-settings-column
|
||||
span
|
||||
.card-settings-column
|
||||
a.flex.js-field-has-card-show-lists-on-minicard(title="{{_ 'card-show-lists-on-minicard'}}" class="{{#if allowsShowListsOnMinicard}}is-checked{{/if}}")
|
||||
i.fa(class="{{#if allowsShowListsOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
|
||||
.card-settings-column
|
||||
span
|
||||
i.fa.fa-list
|
||||
| {{_ 'card-show-lists-on-minicard'}}
|
||||
.card-settings-row
|
||||
.card-settings-column
|
||||
a.flex.js-field-has-card-number(title="{{_ 'card'}} {{_ 'number'}}" class="{{#if allowsCardNumber}}is-checked{{/if}}")
|
||||
@@ -462,6 +435,17 @@ template(name="boardCardSettingsPopup")
|
||||
span
|
||||
i.fa.fa-check
|
||||
| {{_ 'checklists'}}
|
||||
.card-settings-row
|
||||
.card-settings-column
|
||||
a.flex.js-field-has-checklist-count(title="{{_ 'checklist-count'}}" class="{{#if allowsChecklistCountBadgeOnCard}}is-checked{{/if}}")
|
||||
i.fa(class="{{#if allowsChecklistCountBadgeOnCard}}fa-check{{else}}fa-square-o{{/if}}")
|
||||
.card-settings-column
|
||||
a.flex.js-field-has-checklist-count-on-minicard(title="{{_ 'checklist-count'}}" class="{{#if allowsChecklistCountBadgeOnMinicard}}is-checked{{/if}}")
|
||||
i.fa(class="{{#if allowsChecklistCountBadgeOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
|
||||
.card-settings-column
|
||||
span
|
||||
i.fa.fa-check-square-o
|
||||
| {{_ 'checklist-count'}}
|
||||
.card-settings-row
|
||||
.card-settings-column
|
||||
a.flex.js-field-has-subtasks(title="{{_ 'subtasks'}}" class="{{#if allowsSubtasks}}is-checked{{/if}}")
|
||||
@@ -486,24 +470,26 @@ template(name="boardCardSettingsPopup")
|
||||
| {{_ 'attachments'}}
|
||||
.card-settings-row
|
||||
.card-settings-column
|
||||
span
|
||||
a.flex.js-field-has-attachment-count(title="{{_ 'attachment-count'}}" class="{{#if allowsAttachmentCountOnCard}}is-checked{{/if}}")
|
||||
i.fa(class="{{#if allowsAttachmentCountOnCard}}fa-check{{else}}fa-square-o{{/if}}")
|
||||
.card-settings-column
|
||||
a.flex.js-field-has-badge-attachment-on-minicard(title="{{_ 'badge-attachment-on-minicard'}}" class="{{#if allowsBadgeAttachmentOnMinicard}}is-checked{{/if}}")
|
||||
a.flex.js-field-has-badge-attachment-on-minicard(title="{{_ 'attachment-count'}}" class="{{#if allowsBadgeAttachmentOnMinicard}}is-checked{{/if}}")
|
||||
i.fa(class="{{#if allowsBadgeAttachmentOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
|
||||
.card-settings-column
|
||||
span
|
||||
i.fa.fa-paperclip
|
||||
| {{_ 'badge-attachment-on-minicard'}}
|
||||
| {{_ 'attachment-count'}}
|
||||
.card-settings-row
|
||||
.card-settings-column
|
||||
span
|
||||
a.flex.js-field-has-cover-attachment-on-card(title="{{_ 'cover-image'}}" class="{{#if allowsCoverAttachmentOnCard}}is-checked{{/if}}")
|
||||
i.fa(class="{{#if allowsCoverAttachmentOnCard}}fa-check{{else}}fa-square-o{{/if}}")
|
||||
.card-settings-column
|
||||
a.flex.js-field-has-cover-attachment-on-minicard(title="{{_ 'cover-attachment-on-minicard'}}" class="{{#if allowsCoverAttachmentOnMinicard}}is-checked{{/if}}")
|
||||
a.flex.js-field-has-cover-attachment-on-minicard(title="{{_ 'cover-image'}}" class="{{#if allowsCoverAttachmentOnMinicard}}is-checked{{/if}}")
|
||||
i.fa(class="{{#if allowsCoverAttachmentOnMinicard}}fa-check{{else}}fa-square-o{{/if}}")
|
||||
.card-settings-column
|
||||
span
|
||||
i.fa.fa-picture-o
|
||||
| {{_ 'cover-attachment-on-minicard'}}
|
||||
| {{_ 'cover-image'}}
|
||||
//div.check-div
|
||||
//
|
||||
a.flex.js-field-has-comments(class="{{#if allowsComments}}is-checked{{/if}}")
|
||||
|
||||
@@ -1496,6 +1496,28 @@ Template.boardCardSettingsPopup.helpers({
|
||||
const currentBoard = ReactiveCache.getBoard(boardId);
|
||||
return getMinicardSetting(currentBoard, 'allowsChecklistsOnMinicard', 'allowsChecklists', true);
|
||||
},
|
||||
// #6431: compact checklist count badge on minicard, opt-in and OFF by default.
|
||||
allowsChecklistCountBadgeOnMinicard() {
|
||||
const boardId = Session.get('currentBoard');
|
||||
const currentBoard = ReactiveCache.getBoard(boardId);
|
||||
return currentBoard ? currentBoard.allowsChecklistCountBadgeOnMinicard : false;
|
||||
},
|
||||
// #6431 follow-up: new opt-in (OFF by default) card-side options.
|
||||
allowsChecklistCountBadgeOnCard() {
|
||||
const boardId = Session.get('currentBoard');
|
||||
const currentBoard = ReactiveCache.getBoard(boardId);
|
||||
return currentBoard ? currentBoard.allowsChecklistCountBadgeOnCard : false;
|
||||
},
|
||||
allowsAttachmentCountOnCard() {
|
||||
const boardId = Session.get('currentBoard');
|
||||
const currentBoard = ReactiveCache.getBoard(boardId);
|
||||
return currentBoard ? currentBoard.allowsAttachmentCountOnCard : false;
|
||||
},
|
||||
allowsCoverAttachmentOnCard() {
|
||||
const boardId = Session.get('currentBoard');
|
||||
const currentBoard = ReactiveCache.getBoard(boardId);
|
||||
return currentBoard ? currentBoard.allowsCoverAttachmentOnCard : false;
|
||||
},
|
||||
allowsAttachments() {
|
||||
const boardId = Session.get('currentBoard');
|
||||
const currentBoard = ReactiveCache.getBoard(boardId);
|
||||
@@ -1790,6 +1812,26 @@ Template.boardCardSettingsPopup.events({
|
||||
const newValue = !tpl.currentBoard.allowsChecklistsOnMinicard;
|
||||
Boards.update(tpl.currentBoard._id, { $set: { allowsChecklistsOnMinicard: newValue } });
|
||||
},
|
||||
'click .js-field-has-checklist-count-on-minicard'(evt, tpl) {
|
||||
evt.preventDefault();
|
||||
const newValue = !tpl.currentBoard.allowsChecklistCountBadgeOnMinicard;
|
||||
Boards.update(tpl.currentBoard._id, { $set: { allowsChecklistCountBadgeOnMinicard: newValue } });
|
||||
},
|
||||
'click .js-field-has-checklist-count'(evt, tpl) {
|
||||
evt.preventDefault();
|
||||
const newValue = !tpl.currentBoard.allowsChecklistCountBadgeOnCard;
|
||||
Boards.update(tpl.currentBoard._id, { $set: { allowsChecklistCountBadgeOnCard: newValue } });
|
||||
},
|
||||
'click .js-field-has-attachment-count'(evt, tpl) {
|
||||
evt.preventDefault();
|
||||
const newValue = !tpl.currentBoard.allowsAttachmentCountOnCard;
|
||||
Boards.update(tpl.currentBoard._id, { $set: { allowsAttachmentCountOnCard: newValue } });
|
||||
},
|
||||
'click .js-field-has-cover-attachment-on-card'(evt, tpl) {
|
||||
evt.preventDefault();
|
||||
const newValue = !tpl.currentBoard.allowsCoverAttachmentOnCard;
|
||||
Boards.update(tpl.currentBoard._id, { $set: { allowsCoverAttachmentOnCard: newValue } });
|
||||
},
|
||||
'click .js-field-has-attachments'(evt, tpl) {
|
||||
evt.preventDefault();
|
||||
const newValue = !tpl.currentBoard.allowsAttachments;
|
||||
|
||||
@@ -113,6 +113,21 @@ body.mobile-mode .auth-layout .auth-dialog .at-form .password-input-container .p
|
||||
width: 100%;
|
||||
margin-top: 10px;
|
||||
}
|
||||
/* Auth pages (login / register) must scroll as a normal document on mobile so
|
||||
the content below the form — the sign-up / sign-in link, legal notice and
|
||||
language selector — is reachable, including when the on-screen keyboard is
|
||||
open. body.mobile-mode otherwise locks <body> to position:fixed + 100vh (an
|
||||
iOS board-view anti-bounce fix); the auth layout has no inner #content
|
||||
scroller, so that lock traps the page at viewport height and the on-screen
|
||||
keyboard hides the bottom. .userform-layout is added by userFormsLayout while
|
||||
these pages are mounted (see layouts.js). */
|
||||
body.mobile-mode.userform-layout {
|
||||
position: static !important;
|
||||
height: auto !important;
|
||||
min-height: 100vh;
|
||||
overflow-y: auto !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 800px) {
|
||||
.auth-layout {
|
||||
width: 100%;
|
||||
@@ -120,6 +135,14 @@ body.mobile-mode .auth-layout .auth-dialog .at-form .password-input-container .p
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
/* Let the auth layout/dialog grow to their content instead of being pinned to
|
||||
the viewport height, so everything below the form scrolls into view. */
|
||||
body.userform-layout .auth-layout {
|
||||
height: auto;
|
||||
}
|
||||
body.userform-layout .auth-layout .auth-dialog {
|
||||
height: auto;
|
||||
}
|
||||
.auth-layout .at-form-landing-logo {
|
||||
width: 125px;
|
||||
position: absolute;
|
||||
|
||||
@@ -1,27 +1,45 @@
|
||||
import dragscroll from '@wekanteam/dragscroll';
|
||||
import '/client/lib/dragscrollTouch';
|
||||
|
||||
// Enable / disable mouse drag-to-scroll for whole-page layouts.
|
||||
// Enable / disable mouse drag-to-scroll for whole-page layouts (All Boards,
|
||||
// My Cards, Login, Register).
|
||||
//
|
||||
// On pages like All Boards, Login and Register the scroll container is the
|
||||
// <body> element itself (it has `overflow-y: auto; height: 100vh`), not an
|
||||
// inner board canvas or swimlane. The dragscroll library scrolls whichever
|
||||
// element carries the `dragscroll` class and has a dedicated `el ==
|
||||
// document.body` branch that also scrolls document.documentElement, so tagging
|
||||
// <body> makes dragging empty page space scroll the page — the same gesture
|
||||
// that already works on the board swimlanes view.
|
||||
// The dragscroll library scrolls whichever element carries the `dragscroll`
|
||||
// class AND is the actual scroll container. Which element that is depends on
|
||||
// the layout and on mobile vs desktop mode:
|
||||
//
|
||||
// The class is toggled per template (onRendered / onDestroyed) so it only
|
||||
// applies on those pages; dragscroll.reset() re-scans the DOM and (re)binds the
|
||||
// mouse listeners after the class is added or removed. Touch (one-finger)
|
||||
// scrolling is handled separately by client/lib/dragscrollTouch.js.
|
||||
// * Login / Register (userFormsLayout) have no `#content`; the page scroll
|
||||
// container is `<body>` in both modes (it has `overflow-y: auto` and a
|
||||
// `100vh` height).
|
||||
// * All Boards / My Cards (defaultLayout) render inside `#content`. On
|
||||
// desktop the scroll container is `<body>`; in mobile mode `<body>` becomes
|
||||
// `position: fixed` and `#content` becomes the scroller
|
||||
// (`overflow-y: auto; height: calc(100vh - 48px)`), so tagging only
|
||||
// `<body>` would never scroll on a phone.
|
||||
//
|
||||
// To cover every case we tag BOTH `<body>` and `#content` (when present). Only
|
||||
// the element that actually overflows scrolls, so there is no double-scroll:
|
||||
// on desktop `<body>` scrolls and `#content` (no vertical overflow) is a no-op;
|
||||
// in mobile mode `#content` scrolls and `<body>` (fixed, no overflow) is a
|
||||
// no-op. dragscroll has a dedicated `el == document.body` branch for the body
|
||||
// case. dragscroll.reset() re-scans the DOM and (re)binds the mouse listeners.
|
||||
// One-finger touch scrolling is handled by client/lib/dragscrollTouch.js, which
|
||||
// picks the nearest scrollable `.dragscroll` ancestor (so `#content` wins over
|
||||
// `<body>` when both are tagged).
|
||||
|
||||
function pageScrollEls() {
|
||||
const els = [document.body];
|
||||
const content = document.getElementById('content');
|
||||
if (content) els.push(content);
|
||||
return els;
|
||||
}
|
||||
|
||||
export function enablePageDragscroll() {
|
||||
document.body.classList.add('dragscroll');
|
||||
pageScrollEls().forEach(el => el.classList.add('dragscroll'));
|
||||
dragscroll.reset();
|
||||
}
|
||||
|
||||
export function disablePageDragscroll() {
|
||||
document.body.classList.remove('dragscroll');
|
||||
pageScrollEls().forEach(el => el.classList.remove('dragscroll'));
|
||||
dragscroll.reset();
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
// i18n (TAPi18n) tests, run on the client as the old tests/main.js did.
|
||||
import '/imports/i18n/i18n.test.js';
|
||||
import './Utils.tests';
|
||||
import './filter.dependencies.tests';
|
||||
import './dueDateColor.tests';
|
||||
|
||||
+86
-1
@@ -1,9 +1,28 @@
|
||||
import { TAPi18n } from '/imports/i18n';
|
||||
import { FlowRouter } from 'meteor/ostrio:flow-router-extra';
|
||||
|
||||
// Readiness-aware, reactive translation — mirrors the `{{_}}` Blaze helper
|
||||
// (imports/i18n/blaze.js). A bare TAPi18n.__() returns the raw key on the initial
|
||||
// (English) render because the language bundle loads asynchronously, and it never
|
||||
// re-runs once ready. Depending on TAPi18n.current / TAPi18n.ready makes the
|
||||
// account-form labels/placeholders re-render as soon as i18n is loaded and on every
|
||||
// language change.
|
||||
function tr(key) {
|
||||
TAPi18n.current.get();
|
||||
TAPi18n.ready.get();
|
||||
if (!TAPi18n.i18n || !TAPi18n.ready.get()) {
|
||||
return key;
|
||||
}
|
||||
return TAPi18n.__(key);
|
||||
}
|
||||
|
||||
const passwordField = AccountsTemplates.removeField('password');
|
||||
passwordField.autocomplete = 'current-password';
|
||||
passwordField.template = 'passwordInput';
|
||||
// Translate the field label/placeholder via WeKan i18n — see the note below the
|
||||
// addFields() call. Set before re-adding the field so it is present when useraccounts
|
||||
// registers it.
|
||||
passwordField.displayName = () => tr('password');
|
||||
const emailField = AccountsTemplates.removeField('email');
|
||||
|
||||
// Don't add current_password to global fields - it should only be used for change password
|
||||
@@ -75,7 +94,7 @@ AccountsTemplates.addFields([
|
||||
{
|
||||
_id: 'password_again',
|
||||
type: 'password',
|
||||
displayName: 'Password (again)',
|
||||
displayName: () => tr('password-again'),
|
||||
required: true,
|
||||
minLength: 6,
|
||||
autocomplete: 'new-password',
|
||||
@@ -91,6 +110,57 @@ AccountsTemplates.addFields([
|
||||
},
|
||||
]);
|
||||
|
||||
// The sign-in / register form field labels and placeholders were rendered through
|
||||
// accounts-t9n (`T9n.get`), whose per-language coverage is incomplete, and
|
||||
// useraccounts' `getPlaceholder()` never invokes a function placeholder (unlike
|
||||
// `getDisplayName()`) — so several placeholders (Username, Email, Password
|
||||
// (again)) and the Email / Password (again) labels showed untranslated English.
|
||||
// Translate the account-form fields through WeKan's own i18n (TAPi18n) instead,
|
||||
// which has complete data/<lang>.i18n.json coverage.
|
||||
//
|
||||
// Password fields (password, password_again) use WeKan's passwordInput template,
|
||||
// which renders {{displayName}} for both its label and its placeholder. Their
|
||||
// field-level displayName functions (set above / in addFields) are invoked both by
|
||||
// getDisplayName() and by Blaze, so they translate regardless of when useraccounts
|
||||
// wires up per-template helpers. Username / email use the atTextInput override below.
|
||||
if (Meteor.isClient) {
|
||||
const { Template } = require('meteor/templating');
|
||||
const { T9n } = require('meteor/communitypackages:core');
|
||||
// Fields WeKan translates itself (complete data/<lang>.i18n.json coverage), keyed
|
||||
// by field id. Other account-form text inputs — notably the sign-in combined
|
||||
// "username_and_email" field and current_password — keep their built-in
|
||||
// accounts-t9n translation, because WeKan has no key for them and accounts-t9n
|
||||
// already ships one (e.g. "usernameOrEmail").
|
||||
const WEKAN_FIELD_KEY = { username: 'username', email: 'email' };
|
||||
function fieldText(field, original) {
|
||||
TAPi18n.current.get();
|
||||
TAPi18n.ready.get();
|
||||
const key = WEKAN_FIELD_KEY[field._id];
|
||||
if (key && TAPi18n.i18n && TAPi18n.ready.get()) {
|
||||
const translated = TAPi18n.__(key);
|
||||
if (translated !== key) {
|
||||
return translated;
|
||||
}
|
||||
}
|
||||
// Fall back to useraccounts' own accounts-t9n translation. The field's
|
||||
// displayName/placeholder is an accounts-t9n key (e.g. "usernameOrEmail").
|
||||
return T9n.get(original, false);
|
||||
}
|
||||
// The unstyled package registers these helpers on Template.atTextInput at load
|
||||
// time, so this app-startup override wins.
|
||||
Template.atTextInput.helpers({
|
||||
displayName() {
|
||||
return fieldText(this, this.getDisplayName());
|
||||
},
|
||||
placeholder() {
|
||||
if (!AccountsTemplates.options.showPlaceholders) {
|
||||
return undefined;
|
||||
}
|
||||
return fieldText(this, this.getPlaceholder());
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
AccountsTemplates.configure({
|
||||
defaultLayout: 'userFormsLayout',
|
||||
defaultContentRegion: 'content',
|
||||
@@ -230,4 +300,19 @@ if (Meteor.isServer) {
|
||||
Accounts.sendResetPasswordEmail,
|
||||
(code, message) => new Meteor.Error(code, message),
|
||||
);
|
||||
|
||||
// #5672: "Internal Server Error When Signing Up Despite Successful Account
|
||||
// Creation". useraccounts' ATCreateUserServer creates the account and then
|
||||
// calls Accounts.sendVerificationEmail(); when SMTP is not configured that
|
||||
// send throws AFTER the user is inserted, so the createUser method returns a
|
||||
// raw HTTP 500 even though the account exists and can sign in. The
|
||||
// verification email is best-effort at sign-up, so swallow + log a transport
|
||||
// failure (registration then completes and redirects to sign-in). An
|
||||
// "already verified" error is re-thrown so ATResendVerificationEmail still
|
||||
// reports it. Unit-tested in tests/verificationEmail.test.cjs.
|
||||
const { wrapSendVerificationEmail } = require('/server/lib/verificationEmail');
|
||||
Accounts.sendVerificationEmail = wrapSendVerificationEmail(
|
||||
Accounts.sendVerificationEmail,
|
||||
message => console.warn(message),
|
||||
);
|
||||
}
|
||||
@@ -10,7 +10,7 @@ This is without container (without Docker or Snap).
|
||||
|
||||
Right click and download files 1-4:
|
||||
|
||||
1. [wekan-9.72-win64.zip](https://github.com/wekan/wekan/releases/download/v9.72/wekan-9.72-win64.zip) or newest available at https://github.com/wekan/wekan/releases/
|
||||
1. [wekan-9.78-win64.zip](https://github.com/wekan/wekan/releases/download/v9.78/wekan-9.78-win64.zip) or newest available at https://github.com/wekan/wekan/releases/
|
||||
|
||||
2. [node.exe](https://nodejs.org/dist/latest-v24.x/win-x64/node.exe)
|
||||
|
||||
@@ -22,7 +22,7 @@ Right click and download files 1-4:
|
||||
|
||||
6. Double click `mongodb-windows-x86_64-7.0.34-signed.msi` . In installer, uncheck downloading MongoDB compass.
|
||||
|
||||
7. Unzip `wekan-9.72-win64.zip` , inside it is directory `bundle`, to it copy other files:
|
||||
7. Unzip `wekan-9.78-win64.zip` , inside it is directory `bundle`, to it copy other files:
|
||||
|
||||
```
|
||||
bundle (directory)
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
# Reset previous attempts
|
||||
sudo flatpak override --reset com.visualstudio.code
|
||||
|
||||
# Block EVERYTHING except the display and the wekan folder
|
||||
sudo flatpak override com.visualstudio.code \
|
||||
--nofilesystem=home \
|
||||
--nofilesystem=host \
|
||||
--nofilesystem=xdg-run/gvfs \
|
||||
--nofilesystem=xdg-run/gvfsd \
|
||||
--filesystem=~/repos/wekan:rw \
|
||||
--filesystem=~/repos/log:rw \
|
||||
--filesystem=~/repos/w/wekan.fi:rw \
|
||||
--device=all \
|
||||
--socket=wayland \
|
||||
--socket=x11 \
|
||||
--share=network
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "CSV anda(Nilai yang dipisahkan koma)/TSV (Nilai yang dipisahkan tab) tidak termasuk informasi yang tepat dalam format yang benar",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Daftar ini tidak ada",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Nama pengguna ini tidak ada",
|
||||
"error-user-notAllowSelf": "Anda tidak bisa mengundang diri sendiri",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Gambar sampul untuk kartu kecil",
|
||||
"badge-attachment-on-minicard": "Menghitung lampiran pada kartu kecil",
|
||||
"card-sorting-by-number-on-minicard": "Kartu disaring dengan nomor pada kartu kecil",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "rintisan dengan prefix",
|
||||
"prefix-with-parent": "Induk dnegan prefix",
|
||||
"subtext-with-full-path": "Subtext dengan rintisan lengkap",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Jou CSV (Comma Separated Values)/TSV (Tab Separated Values) sluit nie die korrekte inligting in die korrekte formaat in nie",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Hierdie lys bestaan nie",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Hierdie gebruiker bestaan nie",
|
||||
"error-user-notAllowSelf": "Jy kan nie jouself nooi nie",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Omslagprent op minikaart",
|
||||
"badge-attachment-on-minicard": "Telling van aanhegsels op minikaart",
|
||||
"card-sorting-by-number-on-minicard": "Kaart sorteer volgens nommer op minikaart",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Voorvoegsel met volle pad",
|
||||
"prefix-with-parent": "Voorvoegsel met ouer",
|
||||
"subtext-with-full-path": "Subteks met volle pad",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Jou CSV (Comma Separated Values)/TSV (Tab Separated Values) sluit nie die korrekte inligting in die korrekte formaat in nie",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Hierdie lys bestaan nie",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Hierdie gebruiker bestaan nie",
|
||||
"error-user-notAllowSelf": "Jy kan nie jouself nooi nie",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Omslagprent op minikaart",
|
||||
"badge-attachment-on-minicard": "Telling van aanhegsels op minikaart",
|
||||
"card-sorting-by-number-on-minicard": "Kaart sorteer volgens nommer op minikaart",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Voorvoegsel met volle pad",
|
||||
"prefix-with-parent": "Voorvoegsel met ouer",
|
||||
"subtext-with-full-path": "Subteks met volle pad",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "لا يتضمن ملف CSV (القيم المفصولة بفواصل)/TSV (القيم المفصولة بعلامات التبويب) الخاص بك المعلومات الصحيحة بالتنسيق الصحيح",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "این لیست موجود نیست",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "این کاربر وجود ندارد",
|
||||
"error-user-notAllowSelf": "لا يمكنك دعوة نفسك",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "صورة الغلاف على البطاقة الصغيرة",
|
||||
"badge-attachment-on-minicard": "عدد المرفقات على البطاقة الصغيرة",
|
||||
"card-sorting-by-number-on-minicard": "رز البطاقات حسب الرقم على البطاقة الصغيرة",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "پیشوند با مسیر کامل",
|
||||
"prefix-with-parent": "پیشوند با خانواده",
|
||||
"subtext-with-full-path": "زیرنویس با مسیر کامل",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "لا يتضمن ملف CSV (القيم المفصولة بفواصل)/TSV (القيم المفصولة بعلامات التبويب) الخاص بك المعلومات الصحيحة بالتنسيق الصحيح",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "این لیست موجود نیست",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "این کاربر وجود ندارد",
|
||||
"error-user-notAllowSelf": "لا يمكنك دعوة نفسك",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "صورة الغلاف على البطاقة الصغيرة",
|
||||
"badge-attachment-on-minicard": "عدد المرفقات على البطاقة الصغيرة",
|
||||
"card-sorting-by-number-on-minicard": "رز البطاقات حسب الرقم على البطاقة الصغيرة",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "پیشوند با مسیر کامل",
|
||||
"prefix-with-parent": "پیشوند با خانواده",
|
||||
"subtext-with-full-path": "زیرنویس با مسیر کامل",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "لا يتضمن ملف CSV (القيم المفصولة بفواصل)/TSV (القيم المفصولة بعلامات التبويب) الخاص بك المعلومات الصحيحة بالتنسيق الصحيح",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "این لیست موجود نیست",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "این کاربر وجود ندارد",
|
||||
"error-user-notAllowSelf": "لا يمكنك دعوة نفسك",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "صورة الغلاف على البطاقة الصغيرة",
|
||||
"badge-attachment-on-minicard": "عدد المرفقات على البطاقة الصغيرة",
|
||||
"card-sorting-by-number-on-minicard": "رز البطاقات حسب الرقم على البطاقة الصغيرة",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "پیشوند با مسیر کامل",
|
||||
"prefix-with-parent": "پیشوند با خانواده",
|
||||
"subtext-with-full-path": "زیرنویس با مسیر کامل",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "لا يتضمن ملف CSV (القيم المفصولة بفواصل)/TSV (القيم المفصولة بعلامات التبويب) الخاص بك المعلومات الصحيحة بالتنسيق الصحيح",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "این لیست موجود نیست",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "این کاربر وجود ندارد",
|
||||
"error-user-notAllowSelf": "لا يمكنك دعوة نفسك",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "صورة الغلاف على البطاقة الصغيرة",
|
||||
"badge-attachment-on-minicard": "عدد المرفقات على البطاقة الصغيرة",
|
||||
"card-sorting-by-number-on-minicard": "رز البطاقات حسب الرقم على البطاقة الصغيرة",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "پیشوند با مسیر کامل",
|
||||
"prefix-with-parent": "پیشوند با خانواده",
|
||||
"subtext-with-full-path": "زیرنویس با مسیر کامل",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "La lista no existe",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "El usuario no existe",
|
||||
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
|
||||
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
|
||||
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefijo con ruta completa",
|
||||
"prefix-with-parent": "Prefijo con el padre",
|
||||
"subtext-with-full-path": "Subtexto con ruta completa",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Sizin CSV(Vergüllə Ayrılmış Dəyərlər)/TSV (Vergüllə Ayrılmış Dəyərlər) düzgün formatda düzgün məlumatları ehtiva etmir",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Bu siyahı mövcud deyil",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Bu istifadəçi mövcud deyil",
|
||||
"error-user-notAllowSelf": "Özünüzü dəvət edə bilməzsiniz",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Minikartda örtük şəkli",
|
||||
"badge-attachment-on-minicard": "Minikartdakı qoşmaların sayı",
|
||||
"card-sorting-by-number-on-minicard": "Minikartda nömrəyə görə kartın çeşidlənməsi",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Tam yolu olan prefiks",
|
||||
"prefix-with-parent": "Valideyn ilə prefiks",
|
||||
"subtext-with-full-path": "Tam yolu olan alt mətn",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Sizin CSV(Vergüllə Ayrılmış Dəyərlər)/TSV (Vergüllə Ayrılmış Dəyərlər) düzgün formatda düzgün məlumatları ehtiva etmir",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Bu siyahı mövcud deyil",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Bu istifadəçi mövcud deyil",
|
||||
"error-user-notAllowSelf": "Özünüzü dəvət edə bilməzsiniz",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Minikartda örtük şəkli",
|
||||
"badge-attachment-on-minicard": "Minikartdakı qoşmaların sayı",
|
||||
"card-sorting-by-number-on-minicard": "Minikartda nömrəyə görə kartın çeşidlənməsi",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Tam yolu olan prefiks",
|
||||
"prefix-with-parent": "Valideyn ilə prefiks",
|
||||
"subtext-with-full-path": "Tam yolu olan alt mətn",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Sizin CSV(Vergüllə Ayrılmış Dəyərlər)/TSV (Vergüllə Ayrılmış Dəyərlər) düzgün formatda düzgün məlumatları ehtiva etmir",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Bu siyahı mövcud deyil",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Bu istifadəçi mövcud deyil",
|
||||
"error-user-notAllowSelf": "Özünüzü dəvət edə bilməzsiniz",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Minikartda örtük şəkli",
|
||||
"badge-attachment-on-minicard": "Minikartdakı qoşmaların sayı",
|
||||
"card-sorting-by-number-on-minicard": "Minikartda nömrəyə görə kartın çeşidlənməsi",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Tam yolu olan prefiks",
|
||||
"prefix-with-parent": "Valideyn ilə prefiks",
|
||||
"subtext-with-full-path": "Tam yolu olan alt mətn",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "This list does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "This user does not exist",
|
||||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Ваш CSV(Вредности раздвојене зарезом)/TSV (Вредности раздвојене табулатором) не укључује исправну информацију у предвиђеном облику",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Този списък не съществува",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Този потребител не съществува",
|
||||
"error-user-notAllowSelf": "Не можете да поканите себе си",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Мотив из предметне грађе",
|
||||
"badge-attachment-on-minicard": "Број поред спајалице",
|
||||
"card-sorting-by-number-on-minicard": "Бројчана ознака за редослед",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Представка с пълен път",
|
||||
"prefix-with-parent": "Представка с източник",
|
||||
"subtext-with-full-path": "Под-текст с пълен път",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Votre fichier CSV (valeurs séparées par des virgules) / TSV (valeurs séparées par des tabulations) ne contient pas d'informations au bon format",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Cette liste n'existe pas",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Cet utilisateur n'existe pas",
|
||||
"error-user-notAllowSelf": "Vous ne pouvez pas vous inviter vous-même",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Vignette sur la mini-carte",
|
||||
"badge-attachment-on-minicard": "Compteur de pièces jointes sur la mini-carte",
|
||||
"card-sorting-by-number-on-minicard": "Tri numérique des cartes sur la mini-carte",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Préfixer avec le chemin complet",
|
||||
"prefix-with-parent": "Préfixer avec le parent",
|
||||
"subtext-with-full-path": "Sous-titre avec le chemin complet",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "El teu CSV no inclou la informació en el format correcte.",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "La llista no existeix",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "L'usuari no existeix",
|
||||
"error-user-notAllowSelf": "No et pots convidar a la teva matriu",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix amb camí complet",
|
||||
"prefix-with-parent": "Prefix amb el pare",
|
||||
"subtext-with-full-path": "Subtext amb camí complet",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "El teu CSV no inclou la informació en el format correcte.",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "La llista no existeix",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "L'usuari no existeix",
|
||||
"error-user-notAllowSelf": "No et pots convidar a la teva matriu",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
|
||||
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
|
||||
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix amb camí complet",
|
||||
"prefix-with-parent": "Prefix amb el pare",
|
||||
"subtext-with-full-path": "Subtext amb camí complet",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "El teu CSV no inclou la informació en el format correcte.",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "La llista no existeix",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "L'usuari no existeix",
|
||||
"error-user-notAllowSelf": "No et pots convidar a la teva matriu",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix amb camí complet",
|
||||
"prefix-with-parent": "Prefix amb el pare",
|
||||
"subtext-with-full-path": "Subtext amb camí complet",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "您的 CSV(逗号分隔值)/TSV(制表符分隔值)未包含格式正确的正确信息",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "该列表不存在",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "该用户不存在",
|
||||
"error-user-notAllowSelf": "您不能邀请自己",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "迷你卡上的封面图片",
|
||||
"badge-attachment-on-minicard": "迷你卡上的附件计数",
|
||||
"card-sorting-by-number-on-minicard": "按迷你卡上的编号对卡片进行分类",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "带完整路径的前缀",
|
||||
"prefix-with-parent": "带有父级的前缀",
|
||||
"subtext-with-full-path": "带有完整路径的副文本",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Váš CSV (Comma Separated Values)/TSV (Tab Separated Values) neobsahuje správné informace ve správném formátu.",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Tento sloupec ;neexistuje",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Tento uživatel neexistuje",
|
||||
"error-user-notAllowSelf": "Nemůžeš pozvat sám sebe",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Titulní obrázek na minikartě",
|
||||
"badge-attachment-on-minicard": "Počet příloh na minikartě",
|
||||
"card-sorting-by-number-on-minicard": "Řazení karet podle čísla na minikartě",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix s celou cestou",
|
||||
"prefix-with-parent": "Prefix s předkem",
|
||||
"subtext-with-full-path": "Podtext s celou cestou",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Váš CSV (Comma Separated Values)/TSV (Tab Separated Values) neobsahuje správné informace ve správném formátu.",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Tento sloupec ;neexistuje",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Tento uživatel neexistuje",
|
||||
"error-user-notAllowSelf": "Nemůžeš pozvat sám sebe",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Titulní obrázek na minikartě",
|
||||
"badge-attachment-on-minicard": "Počet příloh na minikartě",
|
||||
"card-sorting-by-number-on-minicard": "Řazení karet podle čísla na minikartě",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix s celou cestou",
|
||||
"prefix-with-parent": "Prefix s předkem",
|
||||
"subtext-with-full-path": "Podtext s celou cestou",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Nid yw eich CSV(Comma Separated Values)/TSV (Tab Separated Values) yn cynnwys y wybodaeth gywir yn y fformat cywir",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Nid yw'r rhestr hon yn bodoli",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Nid yw'r defnyddiwr hwn yn bodoli",
|
||||
"error-user-notAllowSelf": "Ni allwch wahodd eich hun",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Llun clawr ar minicard",
|
||||
"badge-attachment-on-minicard": "Cyfrif yr atodiadau ar miniard",
|
||||
"card-sorting-by-number-on-minicard": "Didoli cardiau yn ôl rhif ar minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Rhagddodiad gyda llwybr llawn",
|
||||
"prefix-with-parent": "Rhagddodiad gyda rhiant",
|
||||
"subtext-with-full-path": "Is-destun gyda llwybr llawn",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Nid yw eich CSV(Comma Separated Values)/TSV (Tab Separated Values) yn cynnwys y wybodaeth gywir yn y fformat cywir",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Nid yw'r rhestr hon yn bodoli",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Nid yw'r defnyddiwr hwn yn bodoli",
|
||||
"error-user-notAllowSelf": "Ni allwch wahodd eich hun",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Llun clawr ar minicard",
|
||||
"badge-attachment-on-minicard": "Cyfrif yr atodiadau ar miniard",
|
||||
"card-sorting-by-number-on-minicard": "Didoli cardiau yn ôl rhif ar minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Rhagddodiad gyda llwybr llawn",
|
||||
"prefix-with-parent": "Rhagddodiad gyda rhiant",
|
||||
"subtext-with-full-path": "Is-destun gyda llwybr llawn",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Din CSV (Comma Separated Values)/TSV (Tab Separated Values) indeholder ikke gyldig information i korrekt format",
|
||||
"error-import-empty-board": "Denne eksport indeholder intet tavleindhold (ingen svømmebaner, lister eller kort). Den kan være oprettet af en ældre WeKan-version med en kendt eksportfejl. Eksporter tavlen igen med den aktuelle version, og importer den nye fil.",
|
||||
"error-list-doesNotExist": "Listen findes ikke",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Brugeren findes ikke",
|
||||
"error-user-notAllowSelf": "Du kan ikke invitere dig selv",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Omslagsbild på minikort",
|
||||
"badge-attachment-on-minicard": "Antal bilagor på minikort",
|
||||
"card-sorting-by-number-on-minicard": "Sortering av kort efter nummer på minikort",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Præfiks med fuld sti",
|
||||
"prefix-with-parent": "Præfiks med overordnede",
|
||||
"subtext-with-full-path": "Undertekst med fuld sti",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Deine CSV(Kommatgetrennte Werte)/TSV (Tab getrennte Werte) enthält keine korrekten Informationen im geforderten Format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Diese Liste existiert nicht",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Dieser Nutzer existiert nicht",
|
||||
"error-user-notAllowSelf": "Sie können sich nicht selbst einladen.",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover Bild auf Minikarte",
|
||||
"badge-attachment-on-minicard": "Anzahl der Anhänge auf Minikarte",
|
||||
"card-sorting-by-number-on-minicard": "Kartensortierung nach Nummer auf Minikarte",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Vollständiger Pfad über Titel",
|
||||
"prefix-with-parent": "Über Titel",
|
||||
"subtext-with-full-path": "Vollständiger Pfad unter Titel",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Deine CSV(Kommatgetrennte Werte)/TSV (Tab getrennte Werte) enthält keine korrekten Informationen im geforderten Format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Diese Liste existiert nicht",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Dieser Nutzer existiert nicht",
|
||||
"error-user-notAllowSelf": "Sie können sich nicht selbst einladen.",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover Bild auf Minikarte",
|
||||
"badge-attachment-on-minicard": "Anzahl der Anhänge auf Minikarte",
|
||||
"card-sorting-by-number-on-minicard": "Kartensortierung nach Nummer auf Minikarte",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Vollständiger Pfad über Titel",
|
||||
"prefix-with-parent": "Über Titel",
|
||||
"subtext-with-full-path": "Vollständiger Pfad unter Titel",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Deine CSV(Kommatgetrennte Werte)/TSV (Tab getrennte Werte) enthält keine korrekten Informationen im geforderten Format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Diese Liste existiert nicht",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Dieser Nutzer existiert nicht",
|
||||
"error-user-notAllowSelf": "Sie können sich nicht selbst einladen.",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover Bild auf Minikarte",
|
||||
"badge-attachment-on-minicard": "Anzahl der Anhänge auf Minikarte",
|
||||
"card-sorting-by-number-on-minicard": "Kartensortierung nach Nummer auf Minikarte",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Vollständiger Pfad über Titel",
|
||||
"prefix-with-parent": "Über Titel",
|
||||
"subtext-with-full-path": "Vollständiger Pfad unter Titel",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Deine CSV(Kommatgetrennte Werte)/TSV (Tab getrennte Werte) enthält keine korrekten Informationen im geforderten Format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Diese Liste existiert nicht",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Dieser Nutzer existiert nicht",
|
||||
"error-user-notAllowSelf": "Sie können sich nicht selbst einladen.",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover Bild auf Minikarte",
|
||||
"badge-attachment-on-minicard": "Anzahl der Anhänge auf Minikarte",
|
||||
"card-sorting-by-number-on-minicard": "Kartensortierung nach Nummer auf Minikarte",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Vollständiger Pfad über Titel",
|
||||
"prefix-with-parent": "Über Titel",
|
||||
"subtext-with-full-path": "Vollständiger Pfad unter Titel",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Il tuo file CSV (Comma Separated Values) / TSV (Tab Separated Values) non contiene le giuste informazioni nel formato corretto",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Η λίστα δεν υπάρχει",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Ο χρήστης δεν υπάρχει",
|
||||
"error-user-notAllowSelf": "Δε μπορείτε να αυτοπροσκληθείτε",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Immagine di copertina su minicard",
|
||||
"badge-attachment-on-minicard": "Conteggio degli allegati sulla minicard",
|
||||
"card-sorting-by-number-on-minicard": "La scheda viene ordinata per numero sulla minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefisso con percorso completo",
|
||||
"prefix-with-parent": "Prefisso con genitore",
|
||||
"subtext-with-full-path": "Sottotesto con percorso completo",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Il tuo file CSV (Comma Separated Values) / TSV (Tab Separated Values) non contiene le giuste informazioni nel formato corretto",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Η λίστα δεν υπάρχει",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Ο χρήστης δεν υπάρχει",
|
||||
"error-user-notAllowSelf": "Δε μπορείτε να αυτοπροσκληθείτε",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Immagine di copertina su minicard",
|
||||
"badge-attachment-on-minicard": "Conteggio degli allegati sulla minicard",
|
||||
"card-sorting-by-number-on-minicard": "La scheda viene ordinata per numero sulla minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefisso con percorso completo",
|
||||
"prefix-with-parent": "Prefisso con genitore",
|
||||
"subtext-with-full-path": "Sottotesto con percorso completo",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "This list does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "This user does not exist",
|
||||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "This list does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "This user does not exist",
|
||||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "This list does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "This user does not exist",
|
||||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "This list does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "This user does not exist",
|
||||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "This list does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "This user does not exist",
|
||||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "This list does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "This user does not exist",
|
||||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "This list does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "This user does not exist",
|
||||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "This list does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "This user does not exist",
|
||||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "This list does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "This user does not exist",
|
||||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "This list does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "This user does not exist",
|
||||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "This list does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "This user does not exist",
|
||||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "This list does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "This user does not exist",
|
||||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Tio listo ne ekzistas",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Tio uzanto ne ekzistas",
|
||||
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
|
||||
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
|
||||
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefijo con ruta completa",
|
||||
"prefix-with-parent": "Prefijo con el padre",
|
||||
"subtext-with-full-path": "Subtexto con ruta completa",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Esta lista no existe",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Este usuario no existe",
|
||||
"error-user-notAllowSelf": "No podés invitarte a vos mismo",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
|
||||
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
|
||||
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefijo con ruta completa",
|
||||
"prefix-with-parent": "Prefijo con el padre",
|
||||
"subtext-with-full-path": "Subtexto con ruta completa",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "La lista no existe",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "El usuario no existe",
|
||||
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
|
||||
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
|
||||
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefijo con ruta completa",
|
||||
"prefix-with-parent": "Prefijo con el padre",
|
||||
"subtext-with-full-path": "Subtexto con ruta completa",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "La lista no existe",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "El usuario no existe",
|
||||
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
|
||||
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
|
||||
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefijo con ruta completa",
|
||||
"prefix-with-parent": "Prefijo con el padre",
|
||||
"subtext-with-full-path": "Subtexto con ruta completa",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "La lista no existe",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "El usuario no existe",
|
||||
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
|
||||
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
|
||||
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefijo con ruta completa",
|
||||
"prefix-with-parent": "Prefijo con el padre",
|
||||
"subtext-with-full-path": "Subtexto con ruta completa",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "La lista no existe",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "El usuario no existe",
|
||||
"error-user-notAllowSelf": "No se puede invitar a sí mismo",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
|
||||
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
|
||||
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefijo con ruta completa",
|
||||
"prefix-with-parent": "Prefijo con el padre",
|
||||
"subtext-with-full-path": "Subtexto con ruta completa",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "La lista no existe",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "El usuario no existe",
|
||||
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
|
||||
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
|
||||
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefijo con ruta completa",
|
||||
"prefix-with-parent": "Prefijo con el padre",
|
||||
"subtext-with-full-path": "Subtexto con ruta completa",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "La lista no existe",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "El usuario no existe",
|
||||
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
|
||||
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
|
||||
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefijo con ruta completa",
|
||||
"prefix-with-parent": "Prefijo con el padre",
|
||||
"subtext-with-full-path": "Subtexto con ruta completa",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "La lista no existe",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "El usuario no existe",
|
||||
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Imagen de portada de la minitarjeta",
|
||||
"badge-attachment-on-minicard": "Contador de adjuntos en la minitarjeta",
|
||||
"card-sorting-by-number-on-minicard": "Orden de tarjetas por número de minitarjeta",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefijo con ruta completa",
|
||||
"prefix-with-parent": "Prefijo con el padre",
|
||||
"subtext-with-full-path": "Subtexto con ruta completa",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Seda nimekirja ei ole olemas",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Seda kasutajat ei ole olemas",
|
||||
"error-user-notAllowSelf": "Te ei saa ennast kutsuda",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Täieliku teekonna eesliide",
|
||||
"prefix-with-parent": "Esileht koos vanemaga",
|
||||
"subtext-with-full-path": "Täieliku teekonnaga alltekst",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Zure CSV (komaz bereizitako balioak)/TSV (tabulazio bereizitako balioak) ez du informazio egokia formatu egokian sartzen",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Zerrenda hau ez da existitzen",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Erabiltzaile hau ez da existitzen",
|
||||
"error-user-notAllowSelf": "Ezin duzu zure burua gonbidatu",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "minitxartelaren azalaren irudia",
|
||||
"badge-attachment-on-minicard": "Eranskinen kopurua minitxartelean",
|
||||
"card-sorting-by-number-on-minicard": "Txartelak zenbakien arabera ordenatzea minitxartelean",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefijo con ruta completa",
|
||||
"prefix-with-parent": "Prefijo con el padre",
|
||||
"subtext-with-full-path": "Subtexto con ruta completa",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "لا يتضمن ملف CSV (القيم المفصولة بفواصل)/TSV (القيم المفصولة بعلامات التبويب) الخاص بك المعلومات الصحيحة بالتنسيق الصحيح",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "این لیست موجود نیست",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "این کاربر وجود ندارد",
|
||||
"error-user-notAllowSelf": "عدم امکان دعوت خود",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "عکس کاور بر روی مینی کارت",
|
||||
"badge-attachment-on-minicard": "شمارنده ضمائم بر روی مینی کارت",
|
||||
"card-sorting-by-number-on-minicard": "مرتب سازی کارت با شماره بر روی مینی کارت",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "پیشوند با مسیر کامل",
|
||||
"prefix-with-parent": "پیشوند با خانواده",
|
||||
"subtext-with-full-path": "زیرنویس با مسیر کامل",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "لا يتضمن ملف CSV (القيم المفصولة بفواصل)/TSV (القيم المفصولة بعلامات التبويب) الخاص بك المعلومات الصحيحة بالتنسيق الصحيح",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "این لیست موجود نیست",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "این کاربر وجود ندارد",
|
||||
"error-user-notAllowSelf": "عدم امکان دعوت خود",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "عکس کاور بر روی مینی کارت",
|
||||
"badge-attachment-on-minicard": "شمارنده ضمائم بر روی مینی کارت",
|
||||
"card-sorting-by-number-on-minicard": "مرتب سازی کارت با شماره بر روی مینی کارت",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "پیشوند با مسیر کامل",
|
||||
"prefix-with-parent": "پیشوند با خانواده",
|
||||
"subtext-with-full-path": "زیرنویس با مسیر کامل",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Sinun CSV(pilkulla erotetut arvot)/TSV(tabilla erotetut arvot) ei sisällä oikeita tietoja oikeassa muodossa",
|
||||
"error-import-empty-board": "Tämä vienti ei sisällä taulun sisältöä (ei uimaratoja, listoja tai kortteja). Se on saatettu luoda vanhemmalla WeKan-versiolla, jossa oli tunnettu vientivirhe. Vie taulu uudelleen nykyisellä versiolla ja tuo uusi tiedosto.",
|
||||
"error-list-doesNotExist": "Tätä listaa ei ole olemassa",
|
||||
"error-linked-card-not-allowed": "Voit linkittää vain tavalliseen korttiin. Linkittäminen toiseen linkitettyyn korttiin tai korttiin, joka linkittää takaisin tälle taululle, ei ole sallittua, koska se tekisi korteista käyttökelvottomia.",
|
||||
"error-user-disabled": "Tämä käyttäjätili on poistettu käytöstä",
|
||||
"error-user-doesNotExist": "Tätä käyttäjää ei ole olemassa",
|
||||
"error-user-notAllowSelf": "Et voi kutsua itseäsi",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Kansikuva minikortilla",
|
||||
"badge-attachment-on-minicard": "Liitteiden määrä minikortilla",
|
||||
"card-sorting-by-number-on-minicard": "Korttien lajittelu minikortin numeroiden mukaan",
|
||||
"checklist-count-on-minicard": "Tarkistuslista kohteiden määrä (0/0) minikortilla",
|
||||
"checklist-count": "Tarkistuslista kohteiden määrä (0/0)",
|
||||
"attachment-count": "Liitteiden määrä",
|
||||
"cover-image": "Kansikuva",
|
||||
"prefix-with-full-path": "Etuliite koko polulla",
|
||||
"prefix-with-parent": "Etuliite ylätehtävällä",
|
||||
"subtext-with-full-path": "Aliteksti koko polulla",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Votre fichier CSV (valeurs séparées par des virgules) / TSV (valeurs séparées par des tabulations) ne contient pas d'informations au bon format",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Cette liste n'existe pas",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Cet utilisateur n'existe pas",
|
||||
"error-user-notAllowSelf": "Vous ne pouvez pas vous inviter vous-même",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Vignette sur la mini-carte",
|
||||
"badge-attachment-on-minicard": "Compteur de pièces jointes sur la mini-carte",
|
||||
"card-sorting-by-number-on-minicard": "Tri numérique des cartes sur la mini-carte",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Préfixer avec le chemin complet",
|
||||
"prefix-with-parent": "Préfixer avec le parent",
|
||||
"subtext-with-full-path": "Sous-titre avec le chemin complet",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Votre fichier CSV (valeurs séparées par des virgules) / TSV (valeurs séparées par des tabulations) ne contient pas d'informations au bon format",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Cette liste n'existe pas",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Cet utilisateur n'existe pas",
|
||||
"error-user-notAllowSelf": "Vous ne pouvez pas vous inviter vous-même",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Vignette sur la mini-carte",
|
||||
"badge-attachment-on-minicard": "Compteur de pièces jointes sur la mini-carte",
|
||||
"card-sorting-by-number-on-minicard": "Tri numérique des cartes sur la mini-carte",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Préfixer avec le chemin complet",
|
||||
"prefix-with-parent": "Préfixer avec le parent",
|
||||
"subtext-with-full-path": "Sous-titre avec le chemin complet",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Votre fichier CSV (valeurs séparées par des virgules) / TSV (valeurs séparées par des tabulations) ne contient pas d'informations au bon format",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Cette liste n'existe pas",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Cet utilisateur n'existe pas",
|
||||
"error-user-notAllowSelf": "Vous ne pouvez pas vous inviter vous-même",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Vignette sur la mini-carte",
|
||||
"badge-attachment-on-minicard": "Compteur de pièces jointes sur la mini-carte",
|
||||
"card-sorting-by-number-on-minicard": "Tri numérique des cartes sur la mini-carte",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Préfixer avec le chemin complet",
|
||||
"prefix-with-parent": "Préfixer avec le parent",
|
||||
"subtext-with-full-path": "Sous-titre avec le chemin complet",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Jo CSV (Comma Separated Values)/TSV (Tab Separated Values) befettet net de juste ynformaasje yn it juste formaat",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Dizze list bestiet net",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Dizze brûker bestiet net",
|
||||
"error-user-notAllowSelf": "Jo kinne net útnoegje dysels",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover ôfbylding op minicard",
|
||||
"badge-attachment-on-minicard": "Telling fan taheaksels op minicard",
|
||||
"card-sorting-by-number-on-minicard": "Kaart sortearje op nûmer op minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix mei folslein paad",
|
||||
"prefix-with-parent": "Prefix mei âlder",
|
||||
"subtext-with-full-path": "Subtekst mei folslein paad",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "Jo CSV (Comma Separated Values)/TSV (Tab Separated Values) befettet net de juste ynformaasje yn it juste formaat",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Dizze list bestiet net",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Dizze brûker bestiet net",
|
||||
"error-user-notAllowSelf": "Jo kinne net útnoegje dysels",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Cover ôfbylding op minicard",
|
||||
"badge-attachment-on-minicard": "Telling fan taheaksels op minicard",
|
||||
"card-sorting-by-number-on-minicard": "Kaart sortearje op nûmer op minicard",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix mei folslein paad",
|
||||
"prefix-with-parent": "Prefix mei âlder",
|
||||
"subtext-with-full-path": "Subtekst mei folslein paad",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "O CSV(Comma Separated Values)/TSV (Tab Separated Values) não inclui a informação adequada no formato correto",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Esta lista non existe",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Este usuario non existe",
|
||||
"error-user-notAllowSelf": "Non é posíbel convidarse a un mesmo",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Imagem de capa no mini cartão",
|
||||
"badge-attachment-on-minicard": "Contador de anexos no mini cartão",
|
||||
"card-sorting-by-number-on-minicard": "Número de ordenação do cartão no mini cartão",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefixar com o caminho completo",
|
||||
"prefix-with-parent": "Prefixar com o pai",
|
||||
"subtext-with-full-path": "Sub-texto com o caminho completo",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "O CSV(Comma Separated Values)/TSV (Tab Separated Values) não inclui a informação adequada no formato correto",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "Esta lista non existe",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "Este usuario non existe",
|
||||
"error-user-notAllowSelf": "Non é posíbel convidarse a un mesmo",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "Imagem de capa no mini cartão",
|
||||
"badge-attachment-on-minicard": "Contador de anexos no mini cartão",
|
||||
"card-sorting-by-number-on-minicard": "Número de ordenação do cartão no mini cartão",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefixar com o caminho completo",
|
||||
"prefix-with-parent": "Prefixar com o pai",
|
||||
"subtext-with-full-path": "Sub-texto com o caminho completo",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "તમારા CSV(કોમા સેપરેટેડ વેલ્યુઝ)/TSV (ટૅબ સેપરેટેડ વેલ્યુઝ)માં યોગ્ય ફોર્મેટમાં યોગ્ય માહિતી શામેલ નથી",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "આ સૂચિ અસ્તિત્વમાં નથી",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "આ વપરાશકર્તા અસ્તિત્વમાં નથી",
|
||||
"error-user-notAllowSelf": "તમે તમારી જાતને આમંત્રિત કરી શકતા નથી",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "મિનીકાર્ડ પર કવર છબી",
|
||||
"badge-attachment-on-minicard": "મિનીકાર્ડ પર જોડાણોની ગણતરી",
|
||||
"card-sorting-by-number-on-minicard": "મિનીકાર્ડ પર નંબર દ્વારા કાર્ડનું વર્ગીકરણ",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "સંપૂર્ણ પાથ સાથે ઉપસર્ગ",
|
||||
"prefix-with-parent": "પિતૃ સાથે ઉપસર્ગ",
|
||||
"subtext-with-full-path": "સંપૂર્ણ પાથ સાથે સબટેક્સ્ટ",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "קובץ ה־CSV(ערכים מופרדים בפסיקים)/TSV(ערכים מופרדים בטאבים) לא מכילים את המידע הנכון בצורה הנכונה",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "רשימה זו לא קיימת",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "משתמש זה לא קיים",
|
||||
"error-user-notAllowSelf": "אינך יכול להזמין את עצמך",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "תמונת כותרת על כרטיסון",
|
||||
"badge-attachment-on-minicard": "כמות הצרופות בכרטיסון",
|
||||
"card-sorting-by-number-on-minicard": "מיון כרטיסים לפי מספר בכרטיסון",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "קידומת עם נתיב מלא",
|
||||
"prefix-with-parent": "קידומת עם הורה",
|
||||
"subtext-with-full-path": "טקסט סמוי עם נתיב מלא",
|
||||
|
||||
@@ -125,8 +125,8 @@
|
||||
"list-width-personal-note": "הרוחב הזה הוא רק בשבילך.",
|
||||
"personal-list-width": "רוחבי רשימות אישיות",
|
||||
"personal-list-width-description": "When on, each user keeps their own list widths. When off, list widths are shared with everyone on the board.",
|
||||
"fixed-list-width": "Same width for all lists",
|
||||
"click-to-enable-fixed-list-width": "Same width for all lists disabled. Click to enable.",
|
||||
"fixed-list-width": "אותו רוחב לכל הרשימות",
|
||||
"click-to-enable-fixed-list-width": "אותו רוחב לכל הרשימות הושבת. יש ללחוץ כדי להפעיל.",
|
||||
"click-to-disable-fixed-list-width": "Same width for all lists enabled. Click to disable.",
|
||||
"fixed-list-width-note": "When on, all lists have the same width, and resizing one list resizes all lists. This setting is only for you.",
|
||||
"keyboard-shortcuts-enabled": "קיצורי מקלדת פעילים. לחיצה תשבית אותם.",
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "קובץ ה־CSV(ערכים מופרדים בפסיקים)/TSV(ערכים מופרדים בטאבים) לא מכילים את המידע הנכון בצורה הנכונה",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "רשימה זו לא קיימת",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "חשבון המשתמש הזה מושבת",
|
||||
"error-user-doesNotExist": "משתמש זה לא קיים",
|
||||
"error-user-notAllowSelf": "אינך יכול להזמין את עצמך",
|
||||
@@ -844,13 +845,13 @@
|
||||
"attachment-transfer-limits-description": "Configure maximum file size limits for uploads and downloads. API transfer buffering has separate server-side safety caps.",
|
||||
"attachment-transfer-limits-saved": "Attachment transfer limits saved.",
|
||||
"attachment-transfer-limits-save-failed": "Failed to save attachment transfer limits",
|
||||
"attachment-transfer-limits-invalid-value": "Please enter a valid positive limit value",
|
||||
"attachment-upload-limit-label": "Attachments upload max file size",
|
||||
"attachment-transfer-limits-invalid-value": "נא למלא ערך גבול חיובי תקף",
|
||||
"attachment-upload-limit-label": "גודל קובץ מרבי להעלאת צרופות",
|
||||
"avatars-upload-blocked-label": "תמונות ייצוגיות",
|
||||
"avatars-upload-blocked-description": "Block users from uploading new avatars (useful when avatars are synced from another source). Avatars are enabled by default.",
|
||||
"attachment-download-limit-label": "Attachments download max file size",
|
||||
"api-upload-limit-label": "API upload max file size",
|
||||
"api-download-limit-label": "API download max file size",
|
||||
"api-upload-limit-label": "גודל קובץ מרבי להעלאה דרך API",
|
||||
"api-download-limit-label": "גודל קובץ מרבי להורדה דרך API",
|
||||
"attachment-limit-mode-unlimited": "לא מוגבל",
|
||||
"attachment-limit-mode-max-size": "גודל קובץ מרבי",
|
||||
"attachment-limit-mode-blocked": "חסום",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "תמונת כותרת על כרטיסון",
|
||||
"badge-attachment-on-minicard": "כמות הצרופות בכרטיסון",
|
||||
"card-sorting-by-number-on-minicard": "מיון כרטיסים לפי מספר בכרטיסון",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "קידומת עם נתיב מלא",
|
||||
"prefix-with-parent": "קידומת עם הורה",
|
||||
"subtext-with-full-path": "טקסט סמוי עם נתיב מלא",
|
||||
@@ -1636,7 +1641,7 @@
|
||||
"default-save-storage": "Default Save Storage",
|
||||
"default-save-storage-description": "Choose the storage backend where newly uploaded attachments are saved.",
|
||||
"default-save-storage-saved": "Default save storage saved",
|
||||
"default-save-storage-save-failed": "Failed to save default storage",
|
||||
"default-save-storage-save-failed": "שמירת אחסון ברירת המחדל נכשלה",
|
||||
"move-progress-file": "קובץ",
|
||||
"move-progress-pause": "השהיה",
|
||||
"move-progress-resume": "Resume",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "आपके CSV(कॉमा सेपरेटेड वैल्यू)/TSV (टैब सेपरेटेड वैल्यू) में सही फ़ॉर्मैट में उचित जानकारी शामिल नहीं है",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "यह सूची does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "यह user does not exist",
|
||||
"error-user-notAllowSelf": "તમે તમારી જાતને આમંત્રિત કરી શકતા નથી",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "मिनकार्ड पर कवर छवि",
|
||||
"badge-attachment-on-minicard": "मिनीकार्ड पर अटैचमेंट की गिनती",
|
||||
"card-sorting-by-number-on-minicard": "मिनीकार्ड पर नंबर के आधार पर कार्ड सॉर्टिंग",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix साथ में full path",
|
||||
"prefix-with-parent": "Prefix साथ में parent",
|
||||
"subtext-with-full-path": "Subtext साथ में full path",
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
"error-csv-schema": "आपकी CSV (कोमा सेपरेटेड वैल्यू)/TSV (टैब सेपरेटेड वैल्यू) में सही प्रारूप में उचित जानकारी शामिल नहीं है",
|
||||
"error-import-empty-board": "This export contains no board content (no swimlanes, lists or cards). It may have been created by an older WeKan version with a known export bug. Please re-export the board with the current version and import the new file.",
|
||||
"error-list-doesNotExist": "यह सूची does not exist",
|
||||
"error-linked-card-not-allowed": "You can only link to a normal card. Linking to another linked card, or to a card that links back to this board, is not allowed because it would make the cards inaccessible.",
|
||||
"error-user-disabled": "This user account is disabled",
|
||||
"error-user-doesNotExist": "यह user does not exist",
|
||||
"error-user-notAllowSelf": "તમે તમારી જાતને આમંત્રિત કરી શકતા નથી",
|
||||
@@ -974,6 +975,10 @@
|
||||
"cover-attachment-on-minicard": "मिनीकार्ड पर कवर छवि",
|
||||
"badge-attachment-on-minicard": "मिनीकार्ड पर अटैचमेंट की गिनती",
|
||||
"card-sorting-by-number-on-minicard": "मिनीकार्ड पर संख्या के अनुसार कार्ड क्रमबद्ध करें",
|
||||
"checklist-count-on-minicard": "Checklist item count (0/0) on minicard",
|
||||
"checklist-count": "Checklist item count (0/0)",
|
||||
"attachment-count": "Count of attachments",
|
||||
"cover-image": "Cover image",
|
||||
"prefix-with-full-path": "Prefix साथ में full path",
|
||||
"prefix-with-parent": "Prefix साथ में parent",
|
||||
"subtext-with-full-path": "Subtext साथ में full path",
|
||||
|
||||
Loaded 100 of 249 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user