Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
fc967884d5 | ||
|
360a72d639 | ||
|
0938edc995 |
166
.drone.yml
166
.drone.yml
@ -363,7 +363,7 @@ steps:
|
||||
- api-build
|
||||
|
||||
- name: frontend-dependencies
|
||||
image: node:22.11.0-alpine
|
||||
image: node:20.16.0-alpine
|
||||
pull: always
|
||||
environment:
|
||||
PNPM_CACHE_FOLDER: .cache/pnpm
|
||||
@ -377,7 +377,7 @@ steps:
|
||||
# - restore-cache
|
||||
|
||||
- name: frontend-lint
|
||||
image: node:22.11.0-alpine
|
||||
image: node:20.16.0-alpine
|
||||
pull: always
|
||||
environment:
|
||||
PNPM_CACHE_FOLDER: .cache/pnpm
|
||||
@ -389,7 +389,7 @@ steps:
|
||||
- frontend-dependencies
|
||||
|
||||
- name: frontend-build-prod
|
||||
image: node:22.11.0-alpine
|
||||
image: node:20.16.0-alpine
|
||||
pull: always
|
||||
environment:
|
||||
PNPM_CACHE_FOLDER: .cache/pnpm
|
||||
@ -401,7 +401,7 @@ steps:
|
||||
- frontend-dependencies
|
||||
|
||||
- name: frontend-test-unit
|
||||
image: node:22.11.0-alpine
|
||||
image: node:20.16.0-alpine
|
||||
pull: always
|
||||
commands:
|
||||
- cd frontend
|
||||
@ -412,7 +412,7 @@ steps:
|
||||
|
||||
- name: frontend-typecheck
|
||||
failure: ignore
|
||||
image: node:22.11.0-alpine
|
||||
image: node:20.16.0-alpine
|
||||
pull: always
|
||||
environment:
|
||||
PNPM_CACHE_FOLDER: .cache/pnpm
|
||||
@ -543,7 +543,7 @@ steps:
|
||||
- git fetch --tags
|
||||
|
||||
- name: frontend-dependencies
|
||||
image: node:22.11.0-alpine
|
||||
image: node:20.16.0-alpine
|
||||
pull: always
|
||||
environment:
|
||||
PNPM_CACHE_FOLDER: .cache/pnpm
|
||||
@ -555,7 +555,7 @@ steps:
|
||||
- pnpm install --fetch-timeout 100000
|
||||
|
||||
- name: frontend-build
|
||||
image: node:22.11.0-alpine
|
||||
image: node:20.16.0-alpine
|
||||
pull: always
|
||||
environment:
|
||||
PNPM_CACHE_FOLDER: .cache/pnpm
|
||||
@ -589,13 +589,13 @@ steps:
|
||||
image: plugins/s3
|
||||
pull: always
|
||||
settings:
|
||||
bucket: vikunja
|
||||
bucket: vikunja-releases
|
||||
access_key:
|
||||
from_secret: hetzner_access_key_id
|
||||
from_secret: aws_access_key_id
|
||||
secret_key:
|
||||
from_secret: hetzner_secret_access_key
|
||||
endpoint: https://fsn1.your-objectstorage.com
|
||||
region: fsn1
|
||||
from_secret: aws_secret_access_key
|
||||
endpoint: https://s3.fr-par.scw.cloud
|
||||
region: fr-par
|
||||
path_style: true
|
||||
source: config.yml.sample
|
||||
target: /vikunja/unstable/
|
||||
@ -610,13 +610,13 @@ steps:
|
||||
image: plugins/s3
|
||||
pull: always
|
||||
settings:
|
||||
bucket: vikunja
|
||||
bucket: vikunja-releases
|
||||
access_key:
|
||||
from_secret: hetzner_access_key_id
|
||||
from_secret: aws_access_key_id
|
||||
secret_key:
|
||||
from_secret: hetzner_secret_access_key
|
||||
endpoint: https://fsn1.your-objectstorage.com
|
||||
region: fsn1
|
||||
from_secret: aws_secret_access_key
|
||||
endpoint: https://s3.fr-par.scw.cloud
|
||||
region: fr-par
|
||||
path_style: true
|
||||
source: config.yml.sample
|
||||
target: /vikunja/${DRONE_TAG##v}/
|
||||
@ -626,7 +626,7 @@ steps:
|
||||
depends_on: [ generate-config-yaml ]
|
||||
|
||||
- name: before-static-build
|
||||
image: ghcr.io/techknowlogick/xgo:go-1.23.x
|
||||
image: techknowlogick/xgo:latest
|
||||
pull: always
|
||||
commands:
|
||||
- export PATH=$PATH:$GOPATH/bin
|
||||
@ -635,7 +635,7 @@ steps:
|
||||
depends_on: [ fetch-tags, mage ]
|
||||
|
||||
- name: static-build-windows
|
||||
image: ghcr.io/techknowlogick/xgo:go-1.23.x
|
||||
image: techknowlogick/xgo:latest
|
||||
pull: always
|
||||
environment:
|
||||
# This path does not exist. However, when we set the gopath to /go, the build fails. Not sure why.
|
||||
@ -651,7 +651,7 @@ steps:
|
||||
- frontend-build
|
||||
|
||||
- name: static-build-linux
|
||||
image: ghcr.io/techknowlogick/xgo:go-1.23.x
|
||||
image: techknowlogick/xgo:latest
|
||||
pull: always
|
||||
environment:
|
||||
# This path does not exist. However, when we set the gopath to /go, the build fails. Not sure why.
|
||||
@ -667,7 +667,7 @@ steps:
|
||||
- frontend-build
|
||||
|
||||
- name: static-build-darwin
|
||||
image: ghcr.io/techknowlogick/xgo:go-1.23.x
|
||||
image: techknowlogick/xgo:latest
|
||||
pull: always
|
||||
environment:
|
||||
# This path does not exist. However, when we set the gopath to /go, the build fails. Not sure why.
|
||||
@ -693,7 +693,7 @@ steps:
|
||||
- ./mage-static release:compress
|
||||
|
||||
- name: after-build-static
|
||||
image: ghcr.io/techknowlogick/xgo:go-1.23.x
|
||||
image: techknowlogick/xgo:latest
|
||||
pull: always
|
||||
depends_on:
|
||||
- after-build-compress
|
||||
@ -723,13 +723,13 @@ steps:
|
||||
image: plugins/s3
|
||||
pull: always
|
||||
settings:
|
||||
bucket: vikunja
|
||||
bucket: vikunja-releases
|
||||
access_key:
|
||||
from_secret: hetzner_access_key_id
|
||||
from_secret: aws_access_key_id
|
||||
secret_key:
|
||||
from_secret: hetzner_secret_access_key
|
||||
endpoint: https://fsn1.your-objectstorage.com
|
||||
region: fsn1
|
||||
from_secret: aws_secret_access_key
|
||||
endpoint: https://s3.fr-par.scw.cloud
|
||||
region: fr-par
|
||||
path_style: true
|
||||
strip_prefix: dist/zip/
|
||||
source: dist/zip/*
|
||||
@ -745,13 +745,13 @@ steps:
|
||||
image: plugins/s3
|
||||
pull: always
|
||||
settings:
|
||||
bucket: vikunja
|
||||
bucket: vikunja-releases
|
||||
access_key:
|
||||
from_secret: hetzner_access_key_id
|
||||
from_secret: aws_access_key_id
|
||||
secret_key:
|
||||
from_secret: hetzner_secret_access_key
|
||||
endpoint: https://fsn1.your-objectstorage.com
|
||||
region: fsn1
|
||||
from_secret: aws_secret_access_key
|
||||
endpoint: https://s3.fr-par.scw.cloud
|
||||
region: fr-par
|
||||
path_style: true
|
||||
strip_prefix: dist/zip/
|
||||
source: dist/zip/*
|
||||
@ -763,7 +763,7 @@ steps:
|
||||
|
||||
# Build os packages and push it to our bucket
|
||||
- name: build-os-packages-unstable
|
||||
image: goreleaser/nfpm:v2.41.0
|
||||
image: goreleaser/nfpm:v2.40.0
|
||||
pull: always
|
||||
commands:
|
||||
- apk add git go
|
||||
@ -779,7 +779,7 @@ steps:
|
||||
depends_on: [ after-build-compress ]
|
||||
|
||||
- name: build-os-packages-version
|
||||
image: goreleaser/nfpm:v2.41.0
|
||||
image: goreleaser/nfpm:v2.40.0
|
||||
pull: always
|
||||
commands:
|
||||
- apk add git go
|
||||
@ -797,13 +797,13 @@ steps:
|
||||
image: plugins/s3
|
||||
pull: always
|
||||
settings:
|
||||
bucket: vikunja
|
||||
bucket: vikunja-releases
|
||||
access_key:
|
||||
from_secret: hetzner_access_key_id
|
||||
from_secret: aws_access_key_id
|
||||
secret_key:
|
||||
from_secret: hetzner_secret_access_key
|
||||
endpoint: https://fsn1.your-objectstorage.com
|
||||
region: fsn1
|
||||
from_secret: aws_secret_access_key
|
||||
endpoint: https://s3.fr-par.scw.cloud
|
||||
region: fr-par
|
||||
path_style: true
|
||||
strip_prefix: dist/os-packages/
|
||||
source: dist/os-packages/*
|
||||
@ -819,13 +819,13 @@ steps:
|
||||
image: plugins/s3
|
||||
pull: always
|
||||
settings:
|
||||
bucket: vikunja
|
||||
bucket: vikunja-releases
|
||||
access_key:
|
||||
from_secret: hetzner_access_key_id
|
||||
from_secret: aws_access_key_id
|
||||
secret_key:
|
||||
from_secret: hetzner_secret_access_key
|
||||
endpoint: https://fsn1.your-objectstorage.com
|
||||
region: fsn1
|
||||
from_secret: aws_secret_access_key
|
||||
endpoint: https://s3.fr-par.scw.cloud
|
||||
region: fr-par
|
||||
path_style: true
|
||||
strip_prefix: dist/os-packages/
|
||||
source: dist/os-packages/*
|
||||
@ -884,6 +884,7 @@ steps:
|
||||
repo: vikunja/vikunja
|
||||
tags: unstable
|
||||
platforms:
|
||||
- linux/386
|
||||
- linux/amd64
|
||||
- linux/arm/v6
|
||||
- linux/arm/v7
|
||||
@ -915,6 +916,7 @@ steps:
|
||||
from_secret: docker_password
|
||||
repo: vikunja/vikunja
|
||||
platforms:
|
||||
- linux/386
|
||||
- linux/amd64
|
||||
- linux/arm/v6
|
||||
- linux/arm/v7
|
||||
@ -946,7 +948,7 @@ steps:
|
||||
- git fetch --tags
|
||||
|
||||
- name: build
|
||||
image: node:22.11.0-alpine
|
||||
image: node:20.16.0-alpine
|
||||
pull: always
|
||||
environment:
|
||||
PNPM_CACHE_FOLDER: .cache/pnpm
|
||||
@ -976,13 +978,13 @@ steps:
|
||||
image: plugins/s3
|
||||
pull: always
|
||||
settings:
|
||||
bucket: vikunja
|
||||
bucket: vikunja-releases
|
||||
access_key:
|
||||
from_secret: hetzner_access_key_id
|
||||
from_secret: aws_access_key_id
|
||||
secret_key:
|
||||
from_secret: hetzner_secret_access_key
|
||||
endpoint: https://fsn1.your-objectstorage.com
|
||||
region: fsn1
|
||||
from_secret: aws_secret_access_key
|
||||
endpoint: https://s3.fr-par.scw.cloud
|
||||
region: fr-par
|
||||
path_style: true
|
||||
source: frontend/vikunja-frontend-unstable.zip
|
||||
target: /
|
||||
@ -1007,7 +1009,7 @@ steps:
|
||||
- git fetch --tags
|
||||
|
||||
- name: build
|
||||
image: node:22.11.0-alpine
|
||||
image: node:20.16.0-alpine
|
||||
pull: always
|
||||
environment:
|
||||
PNPM_CACHE_FOLDER: .cache/pnpm
|
||||
@ -1035,13 +1037,13 @@ steps:
|
||||
image: plugins/s3
|
||||
pull: always
|
||||
settings:
|
||||
bucket: vikunja
|
||||
bucket: vikunja-releases
|
||||
access_key:
|
||||
from_secret: hetzner_access_key_id
|
||||
from_secret: aws_access_key_id
|
||||
secret_key:
|
||||
from_secret: hetzner_secret_access_key
|
||||
endpoint: https://fsn1.your-objectstorage.com
|
||||
region: fsn1
|
||||
from_secret: aws_secret_access_key
|
||||
endpoint: https://s3.fr-par.scw.cloud
|
||||
region: fr-par
|
||||
path_style: true
|
||||
source: frontend/vikunja-frontend-${DRONE_TAG##v}.zip
|
||||
target: /
|
||||
@ -1140,15 +1142,15 @@ steps:
|
||||
# settings:
|
||||
# restore: true
|
||||
# bucket: kolaente.dev-drone-dependency-cache
|
||||
# endpoint: https://fsn1.your-objectstorage.com
|
||||
# region: fsn1
|
||||
# endpoint: https://s3.fr-par.scw.cloud
|
||||
# region: fr-par
|
||||
# path_style: true
|
||||
# cache_key: '{{ .Repo.Name }}_{{ checksum "desktop/yarn.lock" }}_{{ arch }}_{{ os }}'
|
||||
# mount:
|
||||
# - '.cache'
|
||||
|
||||
- name: build
|
||||
image: electronuserland/builder:wine
|
||||
image: electronuserland/builder:wine-mono
|
||||
pull: true
|
||||
environment:
|
||||
PNPM_CACHE_FOLDER: .cache/pnpm
|
||||
@ -1179,8 +1181,8 @@ steps:
|
||||
# settings:
|
||||
# rebuild: true
|
||||
# bucket: kolaente.dev-drone-dependency-cache
|
||||
# endpoint: https://fsn1.your-objectstorage.com
|
||||
# region: fsn1
|
||||
# endpoint: https://s3.fr-par.scw.cloud
|
||||
# region: fr-par
|
||||
# path_style: true
|
||||
# cache_key: '{{ .Repo.Name }}_{{ checksum "desktop/yarn.lock" }}_{{ arch }}_{{ os }}'
|
||||
# mount:
|
||||
@ -1222,15 +1224,15 @@ steps:
|
||||
# settings:
|
||||
# restore: true
|
||||
# bucket: kolaente.dev-drone-dependency-cache
|
||||
# endpoint: https://fsn1.your-objectstorage.com
|
||||
# region: fsn1
|
||||
# endpoint: https://s3.fr-par.scw.cloud
|
||||
# region: fr-par
|
||||
# path_style: true
|
||||
# cache_key: '{{ .Repo.Name }}_{{ checksum "desktop/yarn.lock" }}_{{ arch }}_{{ os }}'
|
||||
# mount:
|
||||
# - '.cache'
|
||||
|
||||
- name: build
|
||||
image: electronuserland/builder:wine
|
||||
image: electronuserland/builder:wine-mono
|
||||
pull: true
|
||||
environment:
|
||||
PNPM_CACHE_FOLDER: .cache/pnpm
|
||||
@ -1261,8 +1263,8 @@ steps:
|
||||
# settings:
|
||||
# rebuild: true
|
||||
# bucket: kolaente.dev-drone-dependency-cache
|
||||
# endpoint: https://fsn1.your-objectstorage.com
|
||||
# region: fsn1
|
||||
# endpoint: https://s3.fr-par.scw.cloud
|
||||
# region: fr-par
|
||||
# path_style: true
|
||||
# cache_key: '{{ .Repo.Name }}_{{ checksum "desktop/yarn.lock" }}_{{ arch }}_{{ os }}'
|
||||
# mount:
|
||||
@ -1287,13 +1289,13 @@ steps:
|
||||
image: plugins/s3
|
||||
pull: true
|
||||
settings:
|
||||
bucket: vikunja
|
||||
bucket: vikunja-releases
|
||||
access_key:
|
||||
from_secret: hetzner_access_key_id
|
||||
from_secret: aws_access_key_id
|
||||
secret_key:
|
||||
from_secret: hetzner_secret_access_key
|
||||
endpoint: https://fsn1.your-objectstorage.com
|
||||
region: fsn1
|
||||
from_secret: aws_secret_access_key
|
||||
endpoint: https://s3.fr-par.scw.cloud
|
||||
region: fr-par
|
||||
path_style: true
|
||||
strip_prefix: desktop/dist/
|
||||
source: desktop/dist/Vikunja-Desktop*
|
||||
@ -1309,13 +1311,13 @@ steps:
|
||||
image: plugins/s3
|
||||
pull: true
|
||||
settings:
|
||||
bucket: vikunja
|
||||
bucket: vikunja-releases
|
||||
access_key:
|
||||
from_secret: hetzner_access_key_id
|
||||
from_secret: aws_access_key_id
|
||||
secret_key:
|
||||
from_secret: hetzner_secret_access_key
|
||||
endpoint: https://fsn1.your-objectstorage.com
|
||||
region: fsn1
|
||||
from_secret: aws_secret_access_key
|
||||
endpoint: https://s3.fr-par.scw.cloud
|
||||
region: fr-par
|
||||
path_style: true
|
||||
strip_prefix: desktop/dist/
|
||||
source: desktop/dist/*
|
||||
@ -1344,9 +1346,9 @@ steps:
|
||||
# - name: build
|
||||
# environment:
|
||||
# ACCESS_KEY:
|
||||
# from_secret: hetzner_access_key_id
|
||||
# from_secret: aws_access_key_id
|
||||
# SECRET_KEY:
|
||||
# from_secret: hetzner_secret_access_key
|
||||
# from_secret: aws_secret_access_key
|
||||
# commands:
|
||||
# - git fetch --tags
|
||||
# - export VERSION=${DRONE_TAG##v}
|
||||
@ -1359,9 +1361,9 @@ steps:
|
||||
# - sed -i '' "s/\$${version}/$$VERSION/g" package.json
|
||||
# - yarn install
|
||||
# - yarn dist --mac
|
||||
# - mc config host add scw-fsn1 https://fsn1.your-objectstorage.com $ACCESS_KEY $SECRET_KEY --api S3v4
|
||||
# - mc cp ./dist/*.dmg scw-fsn1/vikunja/desktop/$VERSION/
|
||||
# - mc cp ./dist/*.dmg.blockmap scw-fsn1/vikunja/desktop/$VERSION/
|
||||
# - mc config host add scw-fr-par https://s3.fr-par.scw.cloud $ACCESS_KEY $SECRET_KEY --api S3v4
|
||||
# - mc cp ./dist/*.dmg scw-fr-par/vikunja-releases/desktop/$VERSION/
|
||||
# - mc cp ./dist/*.dmg.blockmap scw-fr-par/vikunja-releases/desktop/$VERSION/
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
@ -1398,6 +1400,6 @@ steps:
|
||||
- failure
|
||||
---
|
||||
kind: signature
|
||||
hmac: 7fc1cb2b0cfdc84d7eda25ce75dd56446fc01060c03af89c91043f095e92a2b3
|
||||
hmac: 804713cb1e91adcbf32b18dbc0ca05b84d2c29b463e2d89b1ab3e5b678fdaf3a
|
||||
|
||||
...
|
||||
|
18
CHANGELOG.md
18
CHANGELOG.md
@ -7,24 +7,6 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
All releases can be found on https://code.vikunja.io/vikunja/releases.
|
||||
|
||||
## [0.24.5] - 2024-11-21
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* *(attachments)* Check permissions when accessing all attachments
|
||||
* *(saved filters)* Check permissions when accessing tasks of a filter
|
||||
* Pin xgo to 1.22.x ([87b2aac](87b2aaccb8cdcbe1ecb6092951a0bfe224ad7006))
|
||||
* Upgrade xgo ([19b63c8](19b63c86c51f67614b867c75a58cda1774685edd))
|
||||
* Upgrade xgo docker image everywhere ([04b40f8](04b40f8a7dcd01a86ddb8b27596073d1e50f9e97))
|
||||
* *(ci)* Do not build linux 368 docker images
|
||||
* Disable 368 releases ([73db10f](73db10fb02268e07d29842493df55f4d645ac503))
|
||||
- **BREAKING**: disable 368 releases
|
||||
|
||||
### Miscellaneous Tasks
|
||||
|
||||
* Sign drone config ([17c4878](17c487875b5771c0971ee8bf030807171de2dddc))
|
||||
* Go mod tidy ([9639025](96390257e0911089ae33a9565e8be7fa954c772c))
|
||||
|
||||
## [0.24.4] - 2024-09-29
|
||||
|
||||
### Bug Fixes
|
||||
|
@ -1,5 +1,5 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
FROM --platform=$BUILDPLATFORM node:22.11.0-alpine AS frontendbuilder
|
||||
FROM --platform=$BUILDPLATFORM node:20.16.0-alpine AS frontendbuilder
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
@ -13,7 +13,7 @@ RUN corepack enable && \
|
||||
pnpm install && \
|
||||
pnpm run build
|
||||
|
||||
FROM --platform=$BUILDPLATFORM ghcr.io/techknowlogick/xgo:go-1.23.x AS apibuilder
|
||||
FROM --platform=$BUILDPLATFORM techknowlogick/xgo:go-1.21.x AS apibuilder
|
||||
|
||||
RUN go install github.com/magefile/mage@latest && \
|
||||
mv /go/bin/mage /usr/local/go/bin
|
||||
@ -53,5 +53,3 @@ ENV VIKUNJA_DATABASE_PATH=/db/vikunja.db
|
||||
|
||||
COPY --from=apibuilder /build/vikunja-* vikunja
|
||||
COPY --from=apibuilder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
||||
HEALTHCHECK --interval=5s --timeout=30s --start-period=10s --retries=3 \
|
||||
CMD [ "/app/vikunja/vikunja", "healthcheck" ]
|
@ -2,7 +2,7 @@
|
||||
|
||||
[![Build Status](https://drone.kolaente.de/api/badges/vikunja/vikunjaa/status.svg)](https://drone.kolaente.de/vikunja/vikunja)
|
||||
[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](LICENSE)
|
||||
[![Install](https://img.shields.io/badge/download-v0.24.5-brightgreen.svg)](https://vikunja.io/docs/installing)
|
||||
[![Install](https://img.shields.io/badge/download-v0.24.4,brightgreen.svg)](https://vikunja.io/docs/installing)
|
||||
[![Docker Pulls](https://img.shields.io/docker/pulls/vikunja/vikunja.svg)](https://hub.docker.com/r/vikunja/vikunja/)
|
||||
[![Swagger Docs](https://img.shields.io/badge/swagger-docs-brightgreen.svg)](https://try.vikunja.io/api/v1/docs)
|
||||
[![Go Report Card](https://goreportcard.com/badge/kolaente.dev/vikunja/vikunja)](https://goreportcard.com/report/kolaente.dev/vikunja/vikunja)
|
||||
|
@ -17,7 +17,6 @@ body = """
|
||||
{% raw %} {% endraw %}- **BREAKING**: {{commit.breaking_description}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{% raw %}\n{% endraw %}\
|
||||
{%- for commit in commits %}
|
||||
{%- if commit.scope -%}
|
||||
{% else -%}
|
||||
@ -57,3 +56,4 @@ commit_parsers = [
|
||||
{ body = ".*security", group = "Security"},
|
||||
{ message = ".*", group = "Other", default_scope = "other"}, # Everything that's not a conventional commit goes into the "Other" category
|
||||
]
|
||||
|
||||
|
@ -127,16 +127,6 @@
|
||||
"key": "enablepublicteams",
|
||||
"default_value": "false",
|
||||
"comment": "Enables the public team feature. If enabled, it is possible to configure teams to be public, which makes them\ndiscoverable when sharing a project, therefore not only showing teams the user is member of."
|
||||
},
|
||||
{
|
||||
"key": "bcryptrounds",
|
||||
"default_value": "11",
|
||||
"comment": "The number of bcrypt rounds to use during registration. Each increment of this number doubles the computational cost. You probably don't need to change this value."
|
||||
},
|
||||
{
|
||||
"key": "enableopenidteamusersearch",
|
||||
"default_value": "false",
|
||||
"comment": "If enabled, users will only find other users who are part of an existing team when they are searching for a user by their partial name. The other existing team may be created from openid. It is still possible to add users to teams with their exact email address even when this is enabled."
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -665,10 +655,9 @@
|
||||
},
|
||||
{
|
||||
"key": "providers",
|
||||
"comment": "A list of enabled providers. You can freely choose the `<provider key>`. Note that you must add at least one key to a config file if you want to read values from an environment variable as the provider won't be known to Vikunja otherwise.",
|
||||
"comment": "A list of enabled providers. This expects an array, which means you cannot use enviroment variables.",
|
||||
"children": [
|
||||
{
|
||||
"key": "<provider key>",
|
||||
"children": [
|
||||
{
|
||||
"key": "name",
|
||||
|
@ -51,11 +51,11 @@
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"electron": "33.2.1",
|
||||
"electron-builder": "25.1.8"
|
||||
"electron": "29.4.6",
|
||||
"electron-builder": "24.13.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"connect-history-api-fallback": "2.0.0",
|
||||
"express": "4.21.1"
|
||||
"express": "4.21.0"
|
||||
}
|
||||
}
|
||||
|
1089
desktop/pnpm-lock.yaml
generated
1089
desktop/pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
23
devenv.lock
23
devenv.lock
@ -3,10 +3,11 @@
|
||||
"devenv": {
|
||||
"locked": {
|
||||
"dir": "src/modules",
|
||||
"lastModified": 1730028891,
|
||||
"lastModified": 1726063457,
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"rev": "a337f8862efa9bde348c48a48b5b943f710604dd",
|
||||
"rev": "39bf6ce569103c9390d37322daa59468c31b3ce7",
|
||||
"treeHash": "839747a1cb35ba6d5b36cce9a739ab2ba5e4a5d4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -23,6 +24,7 @@
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"treeHash": "2addb7b71a20a25ea74feeaf5c2f6a6b30898ecb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -43,6 +45,7 @@
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"treeHash": "ca14199cabdfe1a06a7b1654c76ed49100a689f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -57,6 +60,7 @@
|
||||
"owner": "cachix",
|
||||
"repo": "devenv-nixpkgs",
|
||||
"rev": "4267e705586473d3e5c8d50299e71503f16a6fb6",
|
||||
"treeHash": "6d9f1f7ca0faf1bc2eeb397c78a49623260d3412",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -68,10 +72,11 @@
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1729973466,
|
||||
"lastModified": 1725930920,
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cd3e8833d70618c4eea8df06f95b364b016d4950",
|
||||
"rev": "44a71ff39c182edaf25a7ace5c9454e7cba2c658",
|
||||
"treeHash": "56e93544112b7bb7aa0c3093d537295683ef9148",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -83,10 +88,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1729880355,
|
||||
"lastModified": 1725983898,
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "18536bf04cd71abd345f9579158841376fdd0c5a",
|
||||
"rev": "1355a0cbfeac61d785b7183c0caaec1f97361b43",
|
||||
"treeHash": "d8ce0c1af7690da6161f0991484661331f5bc999",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -106,10 +112,11 @@
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729104314,
|
||||
"lastModified": 1725513492,
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "3c3e88f0f544d6bb54329832616af7eb971b6be6",
|
||||
"rev": "7570de7b9b504cfe92025dd1be797bf546f66528",
|
||||
"treeHash": "4b46d77870afecd8f642541cb4f4927326343b59",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -27,7 +27,6 @@ in {
|
||||
|
||||
go = {
|
||||
enable = true;
|
||||
enableHardeningWorkaround = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
63
frontend/.eslintrc.cjs
Normal file
63
frontend/.eslintrc.cjs
Normal file
@ -0,0 +1,63 @@
|
||||
/* eslint-env node */
|
||||
require('@rushstack/eslint-patch/modern-module-resolution')
|
||||
|
||||
module.exports = {
|
||||
'root': true,
|
||||
'env': {
|
||||
'browser': true,
|
||||
'es2022': true,
|
||||
'node': true,
|
||||
},
|
||||
'extends': [
|
||||
'eslint:recommended',
|
||||
'plugin:vue/vue3-recommended',
|
||||
'@vue/eslint-config-typescript/recommended',
|
||||
],
|
||||
'rules': {
|
||||
'quotes': ['error', 'single'],
|
||||
'comma-dangle': ['error', 'always-multiline'],
|
||||
'semi': ['error', 'never'],
|
||||
|
||||
'vue/v-on-event-hyphenation': ['warn', 'never', { 'autofix': true }],
|
||||
'vue/multi-word-component-names': 'off',
|
||||
|
||||
// uncategorized rules:
|
||||
'vue/component-api-style': ['error', ['script-setup']],
|
||||
'vue/component-name-in-template-casing': ['error', 'PascalCase', {
|
||||
'globals': ['RouterView', 'RouterLink', 'Icon', 'Notifications', 'Modal', 'Card'],
|
||||
}],
|
||||
'vue/custom-event-name-casing': ['error', 'camelCase'],
|
||||
'vue/define-macros-order': 'error',
|
||||
'vue/match-component-file-name': ['error', {
|
||||
'extensions': ['.js', '.jsx', '.ts', '.tsx', '.vue'],
|
||||
'shouldMatchCase': true,
|
||||
}],
|
||||
'vue/no-boolean-default': ['warn', 'default-false'],
|
||||
'vue/match-component-import-name': 'error',
|
||||
'vue/prefer-separate-static-class': 'warn',
|
||||
|
||||
'vue/padding-line-between-blocks': 'error',
|
||||
'vue/next-tick-style': ['error', 'promise'],
|
||||
'vue/block-lang': [
|
||||
'error',
|
||||
{ 'script': { 'lang': 'ts' } },
|
||||
],
|
||||
'vue/no-duplicate-attr-inheritance': 'error',
|
||||
'vue/no-empty-component-block': 'error',
|
||||
'vue/html-indent': ['error', 'tab'],
|
||||
|
||||
// vue3
|
||||
'vue/no-ref-object-reactivity-loss': 'error',
|
||||
'vue/no-setup-props-reactivity-loss': 'warn', // TODO: switch to error after vite `propsDestructure` is removed
|
||||
},
|
||||
'parser': 'vue-eslint-parser',
|
||||
'parserOptions': {
|
||||
'parser': '@typescript-eslint/parser',
|
||||
'ecmaVersion': 'latest',
|
||||
'tsconfigRootDir': __dirname,
|
||||
},
|
||||
'ignorePatterns': [
|
||||
'*.test.*',
|
||||
'cypress/*',
|
||||
],
|
||||
}
|
@ -1 +1 @@
|
||||
22.11.0
|
||||
20.16.0
|
@ -9,7 +9,7 @@ export class LinkShareFactory extends Factory {
|
||||
|
||||
return {
|
||||
id: '{increment}',
|
||||
hash: faker.lorem.word(32),
|
||||
hash: faker.random.word(32),
|
||||
project_id: 1,
|
||||
right: 0,
|
||||
sharing_type: 0,
|
||||
|
@ -10,7 +10,7 @@ export class UserFactory extends Factory {
|
||||
|
||||
return {
|
||||
id: '{increment}',
|
||||
username: faker.lorem.word(10) + faker.string.uuid(),
|
||||
username: faker.lorem.word(10) + faker.datatype.uuid(),
|
||||
password: '$2a$14$dcadBoMBL9jQoOcZK8Fju.cy0Ptx2oZECkKLnaa8ekRoTFe1w7To.', // 1234
|
||||
status: 0,
|
||||
issuer: 'local',
|
||||
|
@ -1,88 +0,0 @@
|
||||
import pluginVue from 'eslint-plugin-vue'
|
||||
import js from '@eslint/js'
|
||||
import vueTsEslintConfig from '@vue/eslint-config-typescript'
|
||||
|
||||
export default [
|
||||
js.configs.recommended,
|
||||
...pluginVue.configs['flat/recommended'],
|
||||
...vueTsEslintConfig(),
|
||||
{
|
||||
ignores: [
|
||||
'**/*.test.ts',
|
||||
'./cypress',
|
||||
],
|
||||
},
|
||||
{
|
||||
rules: {
|
||||
'quotes': ['error', 'single'],
|
||||
'comma-dangle': ['error', 'always-multiline'],
|
||||
'semi': ['error', 'never'],
|
||||
|
||||
'vue/v-on-event-hyphenation': ['warn', 'never', {'autofix': true}],
|
||||
'vue/multi-word-component-names': 'off',
|
||||
|
||||
// uncategorized rules:
|
||||
'vue/component-api-style': ['error', ['script-setup']],
|
||||
'vue/component-name-in-template-casing': ['error', 'PascalCase', {
|
||||
'globals': ['RouterView', 'RouterLink', 'Icon', 'Notifications', 'Modal', 'Card'],
|
||||
}],
|
||||
'vue/custom-event-name-casing': ['error', 'camelCase'],
|
||||
'vue/define-macros-order': 'error',
|
||||
'vue/match-component-file-name': ['error', {
|
||||
'extensions': ['.js', '.jsx', '.ts', '.tsx', '.vue'],
|
||||
'shouldMatchCase': true,
|
||||
}],
|
||||
'vue/no-boolean-default': ['warn', 'default-false'],
|
||||
'vue/match-component-import-name': 'error',
|
||||
'vue/prefer-separate-static-class': 'warn',
|
||||
|
||||
'vue/padding-line-between-blocks': 'error',
|
||||
'vue/next-tick-style': ['error', 'promise'],
|
||||
'vue/block-lang': [
|
||||
'error',
|
||||
{'script': {'lang': 'ts'}},
|
||||
],
|
||||
'vue/no-duplicate-attr-inheritance': 'error',
|
||||
'vue/no-empty-component-block': 'error',
|
||||
'vue/html-indent': ['error', 'tab'],
|
||||
|
||||
// vue3
|
||||
'vue/no-ref-object-reactivity-loss': 'error',
|
||||
'vue/no-setup-props-reactivity-loss': 'warn', // TODO: switch to error after vite `propsDestructure` is removed
|
||||
|
||||
'@typescript-eslint/no-unused-vars': [
|
||||
'error',
|
||||
{
|
||||
// 'args': 'all',
|
||||
// 'argsIgnorePattern': '^_',
|
||||
'caughtErrors': 'all',
|
||||
'caughtErrorsIgnorePattern': '^_',
|
||||
// 'destructuredArrayIgnorePattern': '^_',
|
||||
'varsIgnorePattern': '^_',
|
||||
'ignoreRestSiblings': true,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
// files: ['*.vue', '**/*.vue'],
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
parser: '@typescript-eslint/parser',
|
||||
ecmaVersion: 'latest',
|
||||
tsconfigRootDir: '.',
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
// 'parser': 'vue-eslint-parser',
|
||||
// 'parserOptions': {
|
||||
// 'parser': '@typescript-eslint/parser',
|
||||
// 'ecmaVersion': 'latest',
|
||||
// 'tsconfigRootDir': __dirname,
|
||||
// },
|
||||
// 'ignorePatterns': [
|
||||
// 'cypress/*',
|
||||
// ],
|
||||
},
|
||||
|
||||
]
|
@ -13,7 +13,7 @@
|
||||
},
|
||||
"homepage": "https://vikunja.io/",
|
||||
"funding": "https://opencollective.com/vikunja",
|
||||
"packageManager": "pnpm@9.14.4",
|
||||
"packageManager": "pnpm@9.11.0",
|
||||
"keywords": [
|
||||
"todo",
|
||||
"productivity",
|
||||
@ -50,59 +50,59 @@
|
||||
"story:preview": "histoire preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-svg-core": "6.7.1",
|
||||
"@fortawesome/free-regular-svg-icons": "6.7.1",
|
||||
"@fortawesome/free-solid-svg-icons": "6.7.1",
|
||||
"@fortawesome/fontawesome-svg-core": "6.6.0",
|
||||
"@fortawesome/free-regular-svg-icons": "6.6.0",
|
||||
"@fortawesome/free-solid-svg-icons": "6.6.0",
|
||||
"@fortawesome/vue-fontawesome": "3.0.8",
|
||||
"@github/hotkey": "3.1.1",
|
||||
"@infectoone/vue-ganttastic": "2.3.2",
|
||||
"@intlify/unplugin-vue-i18n": "6.0.0",
|
||||
"@kyvg/vue3-notification": "3.4.1",
|
||||
"@intlify/unplugin-vue-i18n": "5.2.0",
|
||||
"@kyvg/vue3-notification": "3.3.0",
|
||||
"@sentry/tracing": "7.114.0",
|
||||
"@sentry/vue": "8.42.0",
|
||||
"@tiptap/core": "2.10.3",
|
||||
"@tiptap/extension-blockquote": "2.10.3",
|
||||
"@tiptap/extension-bold": "2.10.3",
|
||||
"@tiptap/extension-bullet-list": "2.10.3",
|
||||
"@tiptap/extension-code": "2.10.3",
|
||||
"@tiptap/extension-code-block": "2.10.3",
|
||||
"@tiptap/extension-code-block-lowlight": "2.10.3",
|
||||
"@tiptap/extension-document": "2.10.3",
|
||||
"@tiptap/extension-dropcursor": "2.10.3",
|
||||
"@tiptap/extension-gapcursor": "2.10.3",
|
||||
"@tiptap/extension-hard-break": "2.10.3",
|
||||
"@tiptap/extension-heading": "2.10.3",
|
||||
"@tiptap/extension-history": "2.10.3",
|
||||
"@tiptap/extension-horizontal-rule": "2.10.3",
|
||||
"@tiptap/extension-image": "2.10.3",
|
||||
"@tiptap/extension-italic": "2.10.3",
|
||||
"@tiptap/extension-link": "2.10.3",
|
||||
"@tiptap/extension-list-item": "2.10.3",
|
||||
"@tiptap/extension-ordered-list": "2.10.3",
|
||||
"@tiptap/extension-paragraph": "2.10.3",
|
||||
"@tiptap/extension-placeholder": "2.10.3",
|
||||
"@tiptap/extension-strike": "2.10.3",
|
||||
"@tiptap/extension-table": "2.10.3",
|
||||
"@tiptap/extension-table-cell": "2.10.3",
|
||||
"@tiptap/extension-table-header": "2.10.3",
|
||||
"@tiptap/extension-table-row": "2.10.3",
|
||||
"@tiptap/extension-task-item": "2.10.3",
|
||||
"@tiptap/extension-task-list": "2.10.3",
|
||||
"@tiptap/extension-text": "2.10.3",
|
||||
"@tiptap/extension-typography": "2.10.3",
|
||||
"@tiptap/extension-underline": "2.10.3",
|
||||
"@tiptap/pm": "2.10.3",
|
||||
"@tiptap/suggestion": "2.10.3",
|
||||
"@tiptap/vue-3": "2.10.3",
|
||||
"@vueuse/core": "12.0.0",
|
||||
"@vueuse/router": "12.0.0",
|
||||
"axios": "1.7.8",
|
||||
"@sentry/vue": "8.32.0",
|
||||
"@tiptap/core": "2.8.0",
|
||||
"@tiptap/extension-blockquote": "2.8.0",
|
||||
"@tiptap/extension-bold": "2.8.0",
|
||||
"@tiptap/extension-bullet-list": "2.8.0",
|
||||
"@tiptap/extension-code": "2.8.0",
|
||||
"@tiptap/extension-code-block": "2.8.0",
|
||||
"@tiptap/extension-code-block-lowlight": "2.8.0",
|
||||
"@tiptap/extension-document": "2.8.0",
|
||||
"@tiptap/extension-dropcursor": "2.8.0",
|
||||
"@tiptap/extension-gapcursor": "2.8.0",
|
||||
"@tiptap/extension-hard-break": "2.8.0",
|
||||
"@tiptap/extension-heading": "2.8.0",
|
||||
"@tiptap/extension-history": "2.8.0",
|
||||
"@tiptap/extension-horizontal-rule": "2.8.0",
|
||||
"@tiptap/extension-image": "2.8.0",
|
||||
"@tiptap/extension-italic": "2.8.0",
|
||||
"@tiptap/extension-link": "2.8.0",
|
||||
"@tiptap/extension-list-item": "2.8.0",
|
||||
"@tiptap/extension-ordered-list": "2.8.0",
|
||||
"@tiptap/extension-paragraph": "2.8.0",
|
||||
"@tiptap/extension-placeholder": "2.8.0",
|
||||
"@tiptap/extension-strike": "2.8.0",
|
||||
"@tiptap/extension-table": "2.8.0",
|
||||
"@tiptap/extension-table-cell": "2.8.0",
|
||||
"@tiptap/extension-table-header": "2.8.0",
|
||||
"@tiptap/extension-table-row": "2.8.0",
|
||||
"@tiptap/extension-task-item": "2.8.0",
|
||||
"@tiptap/extension-task-list": "2.8.0",
|
||||
"@tiptap/extension-text": "2.8.0",
|
||||
"@tiptap/extension-typography": "2.8.0",
|
||||
"@tiptap/extension-underline": "2.8.0",
|
||||
"@tiptap/pm": "2.8.0",
|
||||
"@tiptap/suggestion": "2.8.0",
|
||||
"@tiptap/vue-3": "2.8.0",
|
||||
"@vueuse/core": "11.1.0",
|
||||
"@vueuse/router": "11.1.0",
|
||||
"axios": "1.7.7",
|
||||
"blurhash": "2.0.5",
|
||||
"bulma-css-variables": "0.9.33",
|
||||
"change-case": "5.4.4",
|
||||
"date-fns": "4.1.0",
|
||||
"dayjs": "1.11.13",
|
||||
"dompurify": "3.2.2",
|
||||
"dompurify": "3.1.7",
|
||||
"fast-deep-equal": "3.1.3",
|
||||
"flatpickr": "4.6.13",
|
||||
"flexsearch": "0.7.43",
|
||||
@ -110,70 +110,72 @@
|
||||
"is-touch-device": "1.0.1",
|
||||
"klona": "2.0.6",
|
||||
"lowlight": "2.9.0",
|
||||
"pinia": "2.2.8",
|
||||
"pinia": "2.2.3",
|
||||
"register-service-worker": "1.7.2",
|
||||
"sortablejs": "1.15.6",
|
||||
"tailwindcss": "3.4.16",
|
||||
"sortablejs": "1.15.3",
|
||||
"tailwindcss": "3.4.13",
|
||||
"tippy.js": "6.3.7",
|
||||
"ufo": "1.5.4",
|
||||
"vue": "3.5.13",
|
||||
"vue": "3.5.10",
|
||||
"vue-advanced-cropper": "2.8.9",
|
||||
"vue-flatpickr-component": "11.0.5",
|
||||
"vue-i18n": "10.0.5",
|
||||
"vue-router": "4.5.0",
|
||||
"vue-i18n": "10.0.3",
|
||||
"vue-router": "4.4.5",
|
||||
"vuemoji-picker": "0.3.1",
|
||||
"workbox-precaching": "7.3.0",
|
||||
"workbox-precaching": "7.1.0",
|
||||
"zhyswan-vuedraggable": "4.1.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@4tw/cypress-drag-drop": "2.2.5",
|
||||
"@cypress/vite-dev-server": "5.2.1",
|
||||
"@cypress/vite-dev-server": "5.2.0",
|
||||
"@cypress/vue": "6.0.1",
|
||||
"@faker-js/faker": "9.3.0",
|
||||
"@faker-js/faker": "8.4.1",
|
||||
"@histoire/plugin-screenshot": "0.17.17",
|
||||
"@histoire/plugin-vue": "0.17.17",
|
||||
"@tsconfig/node22": "22.0.0",
|
||||
"@rushstack/eslint-patch": "1.10.4",
|
||||
"@tsconfig/node20": "20.1.4",
|
||||
"@types/codemirror": "5.60.15",
|
||||
"@types/dompurify": "3.2.0",
|
||||
"@types/dompurify": "3.0.5",
|
||||
"@types/flexsearch": "0.7.6",
|
||||
"@types/is-touch-device": "1.0.3",
|
||||
"@types/lodash.clonedeep": "4.5.9",
|
||||
"@types/node": "22.10.1",
|
||||
"@types/node": "20.16.10",
|
||||
"@types/sortablejs": "1.15.8",
|
||||
"@typescript-eslint/eslint-plugin": "8.17.0",
|
||||
"@typescript-eslint/parser": "8.17.0",
|
||||
"@vitejs/plugin-legacy": "6.0.0",
|
||||
"@vitejs/plugin-vue": "5.2.1",
|
||||
"@vue/eslint-config-typescript": "14.1.4",
|
||||
"@typescript-eslint/eslint-plugin": "7.18.0",
|
||||
"@typescript-eslint/parser": "7.18.0",
|
||||
"@vitejs/plugin-legacy": "5.4.2",
|
||||
"@vitejs/plugin-vue": "5.1.4",
|
||||
"@vue/eslint-config-typescript": "13.0.0",
|
||||
"@vue/test-utils": "2.4.6",
|
||||
"@vue/tsconfig": "0.7.0",
|
||||
"@vue/tsconfig": "0.5.1",
|
||||
"autoprefixer": "10.4.20",
|
||||
"browserslist": "4.24.2",
|
||||
"caniuse-lite": "1.0.30001686",
|
||||
"browserslist": "4.24.0",
|
||||
"caniuse-lite": "1.0.30001664",
|
||||
"csstype": "3.1.3",
|
||||
"cypress": "13.16.0",
|
||||
"cypress": "13.15.0",
|
||||
"esbuild": "0.24.0",
|
||||
"eslint": "9.16.0",
|
||||
"eslint-plugin-vue": "9.32.0",
|
||||
"happy-dom": "15.11.7",
|
||||
"eslint": "8.57.1",
|
||||
"eslint-plugin-vue": "9.28.0",
|
||||
"happy-dom": "14.12.3",
|
||||
"histoire": "0.17.17",
|
||||
"postcss": "8.4.49",
|
||||
"postcss": "8.4.47",
|
||||
"postcss-easing-gradients": "3.0.1",
|
||||
"postcss-preset-env": "10.1.1",
|
||||
"rollup": "4.28.0",
|
||||
"postcss-easings": "4.0.0",
|
||||
"postcss-preset-env": "9.6.0",
|
||||
"rollup": "4.22.5",
|
||||
"rollup-plugin-visualizer": "5.12.0",
|
||||
"sass-embedded": "1.81.1",
|
||||
"sass": "1.79.4",
|
||||
"start-server-and-test": "2.0.8",
|
||||
"typescript": "5.7.2",
|
||||
"unplugin-inject-preload": "3.0.0",
|
||||
"vite": "6.0.2",
|
||||
"vite-plugin-pwa": "0.21.1",
|
||||
"typescript": "5.6.2",
|
||||
"unplugin-inject-preload": "2.0.5",
|
||||
"vite": "5.4.8",
|
||||
"vite-plugin-pwa": "0.20.5",
|
||||
"vite-plugin-sentry": "1.4.0",
|
||||
"vite-svg-loader": "5.1.0",
|
||||
"vitest": "2.1.8",
|
||||
"vue-tsc": "2.1.10",
|
||||
"wait-on": "8.0.1",
|
||||
"workbox-cli": "7.3.0"
|
||||
"vitest": "1.6.0",
|
||||
"vue-tsc": "2.1.6",
|
||||
"wait-on": "7.2.0",
|
||||
"workbox-cli": "7.1.0"
|
||||
},
|
||||
"pnpm": {
|
||||
"patchedDependencies": {
|
||||
|
6537
frontend/pnpm-lock.yaml
generated
6537
frontend/pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -102,4 +102,6 @@ setLanguage(authStore.settings.language)
|
||||
useColorScheme()
|
||||
</script>
|
||||
|
||||
<style lang="scss" src="@/styles/global.scss" />
|
||||
<style lang="scss">
|
||||
@import '@/styles/global.scss';
|
||||
</style>
|
||||
|
@ -73,7 +73,6 @@ function getHeight(el: HTMLElement) {
|
||||
* https://gist.github.com/paulirish/5d52fb081b3570c81e3a
|
||||
*/
|
||||
function forceLayout(el: HTMLElement) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
||||
el.offsetTop
|
||||
}
|
||||
|
||||
@ -134,16 +133,11 @@ function removeHeight(el: HTMLElement) {
|
||||
<style lang="scss" scoped>
|
||||
$transition-time: 300ms;
|
||||
|
||||
// https://easings.net/#easeInQuint
|
||||
$ease-in-quint: cubic-bezier(0.64, 0, 0.78, 0);
|
||||
// https://easings.net/#easeInOutQuint
|
||||
$ease-in-out-quint: cubic-bezier(0.83, 0, 0.17, 1);
|
||||
|
||||
.expandable-slide-enter-active,
|
||||
.expandable-slide-leave-active {
|
||||
transition:
|
||||
opacity $transition-time $ease-in-quint,
|
||||
height $transition-time $ease-in-out-quint;
|
||||
opacity $transition-time ease-in-quint,
|
||||
height $transition-time ease-in-out-quint;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
@ -36,9 +36,9 @@
|
||||
</p>
|
||||
<p>{{ $t('misc.forExample') }}</p>
|
||||
<ul>
|
||||
<li><code>+1d</code>: {{ $t('input.datemathHelp.add1Day') }}</li>
|
||||
<li><code>-1d</code>: {{ $t('input.datemathHelp.minus1Day') }}</li>
|
||||
<li><code>/d</code>: {{ $t('input.datemathHelp.roundDay') }}</li>
|
||||
<li><code>+1d</code> {{ $t('input.datemathHelp.add1Day') }}</li>
|
||||
<li><code>-1d</code> {{ $t('input.datemathHelp.minus1Day') }}</li>
|
||||
<li><code>/d</code> {{ $t('input.datemathHelp.roundDay') }}</li>
|
||||
</ul>
|
||||
<h3>{{ $t('input.datemathHelp.supportedUnits') }}</h3>
|
||||
<table class="table">
|
||||
|
@ -28,9 +28,10 @@ const enabled = computed(() => configStore.demoModeEnabled && !hide.value)
|
||||
|
||||
<style scoped lang="scss">
|
||||
.demo-mode-banner {
|
||||
position: sticky;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
inset-inline: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: var(--danger);
|
||||
z-index: 100;
|
||||
padding: .5rem;
|
||||
|
@ -9,7 +9,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import {computed} from 'vue'
|
||||
import {computed, defineProps} from 'vue'
|
||||
import BaseButton from '@/components/base/BaseButton.vue'
|
||||
import {POWERED_BY as poweredByUrl} from '@/urls'
|
||||
|
||||
|
@ -25,7 +25,7 @@
|
||||
/>
|
||||
<div
|
||||
class="color-bubble-handle-wrapper"
|
||||
:class="{'is-draggable': project.id > 0 && project.maxRight > RIGHTS.READ}"
|
||||
:class="{'is-draggable': project.id > 0}"
|
||||
>
|
||||
<ColorBubble
|
||||
v-if="project.hexColor !== ''"
|
||||
@ -38,7 +38,7 @@
|
||||
<Icon icon="filter" />
|
||||
</span>
|
||||
<span
|
||||
v-if="project.id > 0 && project.maxRight > RIGHTS.READ"
|
||||
v-if="project.id > 0"
|
||||
class="icon menu-item-icon handle"
|
||||
:class="{'has-color-bubble': project.hexColor !== ''}"
|
||||
>
|
||||
@ -48,7 +48,7 @@
|
||||
<span class="project-menu-title">{{ getProjectTitle(project) }}</span>
|
||||
</BaseButton>
|
||||
<BaseButton
|
||||
v-if="project.id > 0 && project.maxRight > RIGHTS.READ"
|
||||
v-if="project.id > 0"
|
||||
class="favorite"
|
||||
:class="{'is-favorite': project.isFavorite}"
|
||||
@click="projectStore.toggleProjectFavorite(project)"
|
||||