This commit is contained in:
parent
e42b870c09
commit
915ff42133
18 changed files with 217 additions and 181 deletions
|
@ -36,7 +36,7 @@ services:
|
|||
PHOTOPRISM_DATABASE_USER: "root"
|
||||
PHOTOPRISM_DATABASE_PASSWORD: "photoprism"
|
||||
PHOTOPRISM_TEST_DRIVER: "sqlite"
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # the initial admin password (min 4 characters)
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # initial "admin" password (minimum 8 characters)
|
||||
PHOTOPRISM_ASSETS_PATH: "/go/src/github.com/photoprism/photoprism/assets"
|
||||
PHOTOPRISM_STORAGE_PATH: "/go/src/github.com/photoprism/photoprism/storage"
|
||||
PHOTOPRISM_ORIGINALS_PATH: "/go/src/github.com/photoprism/photoprism/storage/originals"
|
||||
|
|
|
@ -21,7 +21,7 @@ services:
|
|||
environment:
|
||||
PHOTOPRISM_UID: ${UID:-1000} # user id, should match your host user id
|
||||
PHOTOPRISM_GID: ${GID:-1000} # group id
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # "admin" password (min 4 characters)
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # initial "admin" password (minimum 8 characters)
|
||||
## Public server URL incl http:// or https:// and /path, :port is optional
|
||||
PHOTOPRISM_SITE_URL: "https://latest.localssl.dev/"
|
||||
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
|
||||
|
|
|
@ -44,7 +44,7 @@ services:
|
|||
PHOTOPRISM_DATABASE_USER: "photoprism"
|
||||
PHOTOPRISM_DATABASE_PASSWORD: "photoprism"
|
||||
PHOTOPRISM_TEST_DRIVER: "sqlite"
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # the initial admin password (min 4 characters)
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # initial "admin" password (minimum 8 characters)
|
||||
PHOTOPRISM_ASSETS_PATH: "/go/src/github.com/photoprism/photoprism/assets"
|
||||
PHOTOPRISM_STORAGE_PATH: "/go/src/github.com/photoprism/photoprism/storage"
|
||||
PHOTOPRISM_ORIGINALS_PATH: "/go/src/github.com/photoprism/photoprism/storage/originals"
|
||||
|
|
|
@ -33,7 +33,7 @@ services:
|
|||
environment:
|
||||
PHOTOPRISM_UID: ${UID:-1000} # user id, should match your host user id
|
||||
PHOTOPRISM_GID: ${GID:-1000} # group id
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # "admin" password (min 4 characters)
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # initial "admin" password (minimum 8 characters)
|
||||
## External development server URL incl http:// or https:// and /path, :port is optional
|
||||
PHOTOPRISM_SITE_URL: "https://app.localssl.dev/"
|
||||
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
|
||||
|
|
|
@ -60,7 +60,7 @@ services:
|
|||
ports:
|
||||
- "2342:2342" # HTTP port (host:container)
|
||||
environment:
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # !!! PLEASE CHANGE YOUR INITIAL "admin" PASSWORD !!!
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # !!! CHANGE YOUR INITIAL "admin" PASSWORD, MINIMUM 8 CHARACTERS !!!
|
||||
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # public server URL incl http:// or https:// and /path, :port is optional
|
||||
PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video)
|
||||
PHOTOPRISM_HTTP_COMPRESSION: "none" # improves transfer speed and bandwidth utilization (none or gzip)
|
||||
|
|
|
@ -55,7 +55,7 @@ services:
|
|||
ports:
|
||||
- "2342:2342" # HTTP port (host:container)
|
||||
environment:
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # !!! PLEASE CHANGE YOUR INITIAL "admin" PASSWORD !!!
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # !!! CHANGE YOUR INITIAL "admin" PASSWORD, MINIMUM 8 CHARACTERS !!!
|
||||
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # public server URL incl http:// or https:// and /path, :port is optional
|
||||
PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video)
|
||||
PHOTOPRISM_HTTP_COMPRESSION: "none" # improves transfer speed and bandwidth utilization (none or gzip)
|
||||
|
|
|
@ -52,7 +52,7 @@ services:
|
|||
ports:
|
||||
- "2342:2342" # HTTP port (host:container)
|
||||
environment:
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # !!! PLEASE CHANGE YOUR INITIAL "admin" PASSWORD !!!
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # !!! CHANGE YOUR INITIAL "admin" PASSWORD, MINIMUM 8 CHARACTERS !!!
|
||||
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # public server URL incl http:// or https:// and /path, :port is optional
|
||||
PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video)
|
||||
PHOTOPRISM_HTTP_COMPRESSION: "gzip" # improves transfer speed and bandwidth utilization (none or gzip)
|
||||
|
|
|
@ -49,7 +49,7 @@ services:
|
|||
ports:
|
||||
- "2342:2342" # HTTP port (host:container)
|
||||
environment:
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # !!! PLEASE CHANGE YOUR INITIAL "admin" PASSWORD !!!
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # !!! CHANGE YOUR INITIAL "admin" PASSWORD, MINIMUM 8 CHARACTERS !!!
|
||||
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # public server URL incl http:// or https:// and /path, :port is optional
|
||||
PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video)
|
||||
PHOTOPRISM_HTTP_COMPRESSION: "gzip" # improves transfer speed and bandwidth utilization (none or gzip)
|
||||
|
|
|
@ -54,7 +54,7 @@ services:
|
|||
ports:
|
||||
- "2342:2342" # HTTP port (host:container)
|
||||
environment:
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # !!! PLEASE CHANGE YOUR INITIAL "admin" PASSWORD !!!
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # !!! CHANGE YOUR INITIAL "admin" PASSWORD, MINIMUM 8 CHARACTERS !!!
|
||||
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # public server URL incl http:// or https:// and /path, :port is optional
|
||||
PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video)
|
||||
PHOTOPRISM_HTTP_COMPRESSION: "gzip" # improves transfer speed and bandwidth utilization (none or gzip)
|
||||
|
|
|
@ -52,7 +52,7 @@ services:
|
|||
ports:
|
||||
- "2342:2342" # HTTP port (host:container)
|
||||
environment:
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # !!! PLEASE CHANGE YOUR INITIAL "admin" PASSWORD !!!
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # !!! CHANGE YOUR INITIAL "admin" PASSWORD, MINIMUM 8 CHARACTERS !!!
|
||||
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # public server URL incl http:// or https:// and /path, :port is optional
|
||||
PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video)
|
||||
PHOTOPRISM_HTTP_COMPRESSION: "gzip" # improves transfer speed and bandwidth utilization (none or gzip)
|
||||
|
|
|
@ -54,7 +54,7 @@ services:
|
|||
ports:
|
||||
- "2342:2342" # HTTP port (host:container)
|
||||
environment:
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # !!! PLEASE CHANGE YOUR INITIAL "admin" PASSWORD !!!
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # !!! CHANGE YOUR INITIAL "admin" PASSWORD, MINIMUM 8 CHARACTERS !!!
|
||||
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # public server URL incl http:// or https:// and /path, :port is optional
|
||||
PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video)
|
||||
PHOTOPRISM_HTTP_COMPRESSION: "gzip" # improves transfer speed and bandwidth utilization (none or gzip)
|
||||
|
|
218
frontend/package-lock.json
generated
218
frontend/package-lock.json
generated
|
@ -2122,12 +2122,12 @@
|
|||
"integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q=="
|
||||
},
|
||||
"node_modules/@vue/compiler-core": {
|
||||
"version": "3.2.31",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.31.tgz",
|
||||
"integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==",
|
||||
"version": "3.2.32",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.32.tgz",
|
||||
"integrity": "sha512-bRQ8Rkpm/aYFElDWtKkTPHeLnX5pEkNxhPUcqu5crEJIilZH0yeFu/qUAcV4VfSE2AudNPkQSOwMZofhnuutmA==",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.16.4",
|
||||
"@vue/shared": "3.2.31",
|
||||
"@vue/shared": "3.2.32",
|
||||
"estree-walker": "^2.0.2",
|
||||
"source-map": "^0.6.1"
|
||||
}
|
||||
|
@ -2141,25 +2141,25 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-dom": {
|
||||
"version": "3.2.31",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz",
|
||||
"integrity": "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==",
|
||||
"version": "3.2.32",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.32.tgz",
|
||||
"integrity": "sha512-maa3PNB/NxR17h2hDQfcmS02o1f9r9QIpN1y6fe8tWPrS1E4+q8MqrvDDQNhYVPd84rc3ybtyumrgm9D5Rf/kg==",
|
||||
"dependencies": {
|
||||
"@vue/compiler-core": "3.2.31",
|
||||
"@vue/shared": "3.2.31"
|
||||
"@vue/compiler-core": "3.2.32",
|
||||
"@vue/shared": "3.2.32"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-sfc": {
|
||||
"version": "3.2.31",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz",
|
||||
"integrity": "sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==",
|
||||
"version": "3.2.32",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.32.tgz",
|
||||
"integrity": "sha512-uO6+Gh3AVdWm72lRRCjMr8nMOEqc6ezT9lWs5dPzh1E9TNaJkMYPaRtdY9flUv/fyVQotkfjY/ponjfR+trPSg==",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.16.4",
|
||||
"@vue/compiler-core": "3.2.31",
|
||||
"@vue/compiler-dom": "3.2.31",
|
||||
"@vue/compiler-ssr": "3.2.31",
|
||||
"@vue/reactivity-transform": "3.2.31",
|
||||
"@vue/shared": "3.2.31",
|
||||
"@vue/compiler-core": "3.2.32",
|
||||
"@vue/compiler-dom": "3.2.32",
|
||||
"@vue/compiler-ssr": "3.2.32",
|
||||
"@vue/reactivity-transform": "3.2.32",
|
||||
"@vue/shared": "3.2.32",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.25.7",
|
||||
"postcss": "^8.1.10",
|
||||
|
@ -2175,12 +2175,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-ssr": {
|
||||
"version": "3.2.31",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz",
|
||||
"integrity": "sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==",
|
||||
"version": "3.2.32",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.32.tgz",
|
||||
"integrity": "sha512-ZklVUF/SgTx6yrDUkaTaBL/JMVOtSocP+z5Xz/qIqqLdW/hWL90P+ob/jOQ0Xc/om57892Q7sRSrex0wujOL2Q==",
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.2.31",
|
||||
"@vue/shared": "3.2.31"
|
||||
"@vue/compiler-dom": "3.2.32",
|
||||
"@vue/shared": "3.2.32"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/component-compiler-utils": {
|
||||
|
@ -2231,21 +2231,21 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@vue/reactivity-transform": {
|
||||
"version": "3.2.31",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz",
|
||||
"integrity": "sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==",
|
||||
"version": "3.2.32",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.32.tgz",
|
||||
"integrity": "sha512-CW1W9zaJtE275tZSWIfQKiPG0iHpdtSlmTqYBu7Y62qvtMgKG5yOxtvBs4RlrZHlaqFSE26avLAgQiTp4YHozw==",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.16.4",
|
||||
"@vue/compiler-core": "3.2.31",
|
||||
"@vue/shared": "3.2.31",
|
||||
"@vue/compiler-core": "3.2.32",
|
||||
"@vue/shared": "3.2.32",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.25.7"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/shared": {
|
||||
"version": "3.2.31",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.31.tgz",
|
||||
"integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ=="
|
||||
"version": "3.2.32",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.32.tgz",
|
||||
"integrity": "sha512-bjcixPErUsAnTQRQX4Z5IQnICYjIfNCyCl8p29v1M6kfVzvwOICPw+dz48nNuWlTOOx2RHhzHdazJibE8GSnsw=="
|
||||
},
|
||||
"node_modules/@vvo/tzdb": {
|
||||
"version": "6.49.0",
|
||||
|
@ -2745,13 +2745,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/array.prototype.flat": {
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
|
||||
"integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
|
||||
"integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.2",
|
||||
"define-properties": "^1.1.3",
|
||||
"es-abstract": "^1.19.0"
|
||||
"es-abstract": "^1.19.2",
|
||||
"es-shim-unscopables": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
|
@ -3229,9 +3230,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001327",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001327.tgz",
|
||||
"integrity": "sha512-1/Cg4jlD9qjZzhbzkzEaAC2JHsP0WrOc8Rd/3a3LuajGzGWR/hD7TVyvq99VqmTy99eVh8Zkmdq213OgvgXx7w==",
|
||||
"version": "1.0.30001328",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001328.tgz",
|
||||
"integrity": "sha512-Ue55jHkR/s4r00FLNiX+hGMMuwml/QGqqzVeMQ5thUewznU2EdULFvI3JR7JJid6OrjJNfFvHY2G2dIjmRaDDQ==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
|
@ -4358,9 +4359,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.4.106",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz",
|
||||
"integrity": "sha512-ZYfpVLULm67K7CaaGP7DmjyeMY4naxsbTy+syVVxT6QHI1Ww8XbJjmr9fDckrhq44WzCrcC5kH3zGpdusxwwqg=="
|
||||
"version": "1.4.107",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.107.tgz",
|
||||
"integrity": "sha512-Huen6taaVrUrSy8o7mGStByba8PfOWWluHNxSHGBrCgEdFVLtvdQDBr9LBCF9Uci8SYxh28QNNMO0oC17wbGAg=="
|
||||
},
|
||||
"node_modules/emoji-regex": {
|
||||
"version": "8.0.0",
|
||||
|
@ -4522,9 +4523,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/es-abstract": {
|
||||
"version": "1.19.2",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz",
|
||||
"integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==",
|
||||
"version": "1.19.3",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.3.tgz",
|
||||
"integrity": "sha512-4axXLNovnMYf0+csS5rVnS5hLmV1ek+ecx9MuCjByL1E5Nn54avf6CHQxIjgQIHBnfX9AMxTRIy0q+Yu5J/fXA==",
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.2",
|
||||
"es-to-primitive": "^1.2.1",
|
||||
|
@ -4537,7 +4538,7 @@
|
|||
"is-callable": "^1.2.4",
|
||||
"is-negative-zero": "^2.0.2",
|
||||
"is-regex": "^1.1.4",
|
||||
"is-shared-array-buffer": "^1.0.1",
|
||||
"is-shared-array-buffer": "^1.0.2",
|
||||
"is-string": "^1.0.7",
|
||||
"is-weakref": "^1.0.2",
|
||||
"object-inspect": "^1.12.0",
|
||||
|
@ -4559,6 +4560,14 @@
|
|||
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
|
||||
"integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ=="
|
||||
},
|
||||
"node_modules/es-shim-unscopables": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
|
||||
"integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
|
||||
"dependencies": {
|
||||
"has": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"node_modules/es-to-primitive": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
|
||||
|
@ -7664,9 +7673,9 @@
|
|||
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
|
||||
},
|
||||
"node_modules/loader-runner": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz",
|
||||
"integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==",
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
|
||||
"integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
|
||||
"engines": {
|
||||
"node": ">=6.11.5"
|
||||
}
|
||||
|
@ -8445,9 +8454,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/node-releases": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz",
|
||||
"integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg=="
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz",
|
||||
"integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw=="
|
||||
},
|
||||
"node_modules/node-storage-shim": {
|
||||
"version": "2.0.1",
|
||||
|
@ -14265,12 +14274,12 @@
|
|||
"integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q=="
|
||||
},
|
||||
"@vue/compiler-core": {
|
||||
"version": "3.2.31",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.31.tgz",
|
||||
"integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==",
|
||||
"version": "3.2.32",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.32.tgz",
|
||||
"integrity": "sha512-bRQ8Rkpm/aYFElDWtKkTPHeLnX5pEkNxhPUcqu5crEJIilZH0yeFu/qUAcV4VfSE2AudNPkQSOwMZofhnuutmA==",
|
||||
"requires": {
|
||||
"@babel/parser": "^7.16.4",
|
||||
"@vue/shared": "3.2.31",
|
||||
"@vue/shared": "3.2.32",
|
||||
"estree-walker": "^2.0.2",
|
||||
"source-map": "^0.6.1"
|
||||
},
|
||||
|
@ -14283,25 +14292,25 @@
|
|||
}
|
||||
},
|
||||
"@vue/compiler-dom": {
|
||||
"version": "3.2.31",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz",
|
||||
"integrity": "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==",
|
||||
"version": "3.2.32",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.32.tgz",
|
||||
"integrity": "sha512-maa3PNB/NxR17h2hDQfcmS02o1f9r9QIpN1y6fe8tWPrS1E4+q8MqrvDDQNhYVPd84rc3ybtyumrgm9D5Rf/kg==",
|
||||
"requires": {
|
||||
"@vue/compiler-core": "3.2.31",
|
||||
"@vue/shared": "3.2.31"
|
||||
"@vue/compiler-core": "3.2.32",
|
||||
"@vue/shared": "3.2.32"
|
||||
}
|
||||
},
|
||||
"@vue/compiler-sfc": {
|
||||
"version": "3.2.31",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz",
|
||||
"integrity": "sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==",
|
||||
"version": "3.2.32",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.32.tgz",
|
||||
"integrity": "sha512-uO6+Gh3AVdWm72lRRCjMr8nMOEqc6ezT9lWs5dPzh1E9TNaJkMYPaRtdY9flUv/fyVQotkfjY/ponjfR+trPSg==",
|
||||
"requires": {
|
||||
"@babel/parser": "^7.16.4",
|
||||
"@vue/compiler-core": "3.2.31",
|
||||
"@vue/compiler-dom": "3.2.31",
|
||||
"@vue/compiler-ssr": "3.2.31",
|
||||
"@vue/reactivity-transform": "3.2.31",
|
||||
"@vue/shared": "3.2.31",
|
||||
"@vue/compiler-core": "3.2.32",
|
||||
"@vue/compiler-dom": "3.2.32",
|
||||
"@vue/compiler-ssr": "3.2.32",
|
||||
"@vue/reactivity-transform": "3.2.32",
|
||||
"@vue/shared": "3.2.32",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.25.7",
|
||||
"postcss": "^8.1.10",
|
||||
|
@ -14316,12 +14325,12 @@
|
|||
}
|
||||
},
|
||||
"@vue/compiler-ssr": {
|
||||
"version": "3.2.31",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz",
|
||||
"integrity": "sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==",
|
||||
"version": "3.2.32",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.32.tgz",
|
||||
"integrity": "sha512-ZklVUF/SgTx6yrDUkaTaBL/JMVOtSocP+z5Xz/qIqqLdW/hWL90P+ob/jOQ0Xc/om57892Q7sRSrex0wujOL2Q==",
|
||||
"requires": {
|
||||
"@vue/compiler-dom": "3.2.31",
|
||||
"@vue/shared": "3.2.31"
|
||||
"@vue/compiler-dom": "3.2.32",
|
||||
"@vue/shared": "3.2.32"
|
||||
}
|
||||
},
|
||||
"@vue/component-compiler-utils": {
|
||||
|
@ -14362,21 +14371,21 @@
|
|||
}
|
||||
},
|
||||
"@vue/reactivity-transform": {
|
||||
"version": "3.2.31",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz",
|
||||
"integrity": "sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==",
|
||||
"version": "3.2.32",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.32.tgz",
|
||||
"integrity": "sha512-CW1W9zaJtE275tZSWIfQKiPG0iHpdtSlmTqYBu7Y62qvtMgKG5yOxtvBs4RlrZHlaqFSE26avLAgQiTp4YHozw==",
|
||||
"requires": {
|
||||
"@babel/parser": "^7.16.4",
|
||||
"@vue/compiler-core": "3.2.31",
|
||||
"@vue/shared": "3.2.31",
|
||||
"@vue/compiler-core": "3.2.32",
|
||||
"@vue/shared": "3.2.32",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.25.7"
|
||||
}
|
||||
},
|
||||
"@vue/shared": {
|
||||
"version": "3.2.31",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.31.tgz",
|
||||
"integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ=="
|
||||
"version": "3.2.32",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.32.tgz",
|
||||
"integrity": "sha512-bjcixPErUsAnTQRQX4Z5IQnICYjIfNCyCl8p29v1M6kfVzvwOICPw+dz48nNuWlTOOx2RHhzHdazJibE8GSnsw=="
|
||||
},
|
||||
"@vvo/tzdb": {
|
||||
"version": "6.49.0",
|
||||
|
@ -14764,13 +14773,14 @@
|
|||
}
|
||||
},
|
||||
"array.prototype.flat": {
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
|
||||
"integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
|
||||
"integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
|
||||
"requires": {
|
||||
"call-bind": "^1.0.2",
|
||||
"define-properties": "^1.1.3",
|
||||
"es-abstract": "^1.19.0"
|
||||
"es-abstract": "^1.19.2",
|
||||
"es-shim-unscopables": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"arraybuffer.slice": {
|
||||
|
@ -15122,9 +15132,9 @@
|
|||
}
|
||||
},
|
||||
"caniuse-lite": {
|
||||
"version": "1.0.30001327",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001327.tgz",
|
||||
"integrity": "sha512-1/Cg4jlD9qjZzhbzkzEaAC2JHsP0WrOc8Rd/3a3LuajGzGWR/hD7TVyvq99VqmTy99eVh8Zkmdq213OgvgXx7w=="
|
||||
"version": "1.0.30001328",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001328.tgz",
|
||||
"integrity": "sha512-Ue55jHkR/s4r00FLNiX+hGMMuwml/QGqqzVeMQ5thUewznU2EdULFvI3JR7JJid6OrjJNfFvHY2G2dIjmRaDDQ=="
|
||||
},
|
||||
"chai": {
|
||||
"version": "4.3.6",
|
||||
|
@ -15933,9 +15943,9 @@
|
|||
}
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
"version": "1.4.106",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz",
|
||||
"integrity": "sha512-ZYfpVLULm67K7CaaGP7DmjyeMY4naxsbTy+syVVxT6QHI1Ww8XbJjmr9fDckrhq44WzCrcC5kH3zGpdusxwwqg=="
|
||||
"version": "1.4.107",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.107.tgz",
|
||||
"integrity": "sha512-Huen6taaVrUrSy8o7mGStByba8PfOWWluHNxSHGBrCgEdFVLtvdQDBr9LBCF9Uci8SYxh28QNNMO0oC17wbGAg=="
|
||||
},
|
||||
"emoji-regex": {
|
||||
"version": "8.0.0",
|
||||
|
@ -16061,9 +16071,9 @@
|
|||
}
|
||||
},
|
||||
"es-abstract": {
|
||||
"version": "1.19.2",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz",
|
||||
"integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==",
|
||||
"version": "1.19.3",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.3.tgz",
|
||||
"integrity": "sha512-4axXLNovnMYf0+csS5rVnS5hLmV1ek+ecx9MuCjByL1E5Nn54avf6CHQxIjgQIHBnfX9AMxTRIy0q+Yu5J/fXA==",
|
||||
"requires": {
|
||||
"call-bind": "^1.0.2",
|
||||
"es-to-primitive": "^1.2.1",
|
||||
|
@ -16076,7 +16086,7 @@
|
|||
"is-callable": "^1.2.4",
|
||||
"is-negative-zero": "^2.0.2",
|
||||
"is-regex": "^1.1.4",
|
||||
"is-shared-array-buffer": "^1.0.1",
|
||||
"is-shared-array-buffer": "^1.0.2",
|
||||
"is-string": "^1.0.7",
|
||||
"is-weakref": "^1.0.2",
|
||||
"object-inspect": "^1.12.0",
|
||||
|
@ -16092,6 +16102,14 @@
|
|||
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
|
||||
"integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ=="
|
||||
},
|
||||
"es-shim-unscopables": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
|
||||
"integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
|
||||
"requires": {
|
||||
"has": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"es-to-primitive": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
|
||||
|
@ -18287,9 +18305,9 @@
|
|||
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
|
||||
},
|
||||
"loader-runner": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz",
|
||||
"integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw=="
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
|
||||
"integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg=="
|
||||
},
|
||||
"loader-utils": {
|
||||
"version": "0.2.17",
|
||||
|
@ -18888,9 +18906,9 @@
|
|||
"integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA="
|
||||
},
|
||||
"node-releases": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz",
|
||||
"integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg=="
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz",
|
||||
"integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw=="
|
||||
},
|
||||
"node-storage-shim": {
|
||||
"version": "2.0.1",
|
||||
|
|
|
@ -114,7 +114,7 @@ msgstr ""
|
|||
#: src/component/album/clipboard.vue:136
|
||||
#: src/component/file/clipboard.vue:89
|
||||
#: src/component/label/clipboard.vue:67
|
||||
#: src/component/photo/clipboard.vue:191
|
||||
#: src/component/photo/clipboard.vue:192
|
||||
#: src/component/subject/clipboard.vue:89
|
||||
#: src/dialog/photo/album.vue:20
|
||||
msgid "Add to album"
|
||||
|
@ -290,7 +290,7 @@ msgstr ""
|
|||
#: src/app/routes.js:210
|
||||
#: src/component/navigation.vue:123
|
||||
#: src/component/photo/cards.vue:36
|
||||
#: src/component/photo/clipboard.vue:215
|
||||
#: src/component/photo/clipboard.vue:216
|
||||
#: src/pages/settings/general.vue:294
|
||||
#: src/share/photo/cards.vue:36
|
||||
msgid "Archive"
|
||||
|
@ -337,10 +337,6 @@ msgstr ""
|
|||
msgid "Aspect Ratio"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/account.vue:85
|
||||
msgid "At least 6 characters."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/library.vue:114
|
||||
msgid "Automatically create JPEGs for other file types so that they can be displayed in a browser."
|
||||
msgstr ""
|
||||
|
@ -460,8 +456,8 @@ msgstr ""
|
|||
msgid "Cards"
|
||||
msgstr ""
|
||||
|
||||
#: src/component/photo/toolbar.vue:352
|
||||
#: src/dialog/album/edit.vue:163
|
||||
#: src/component/photo/toolbar.vue:351
|
||||
#: src/dialog/album/edit.vue:162
|
||||
#: src/pages/about/feedback.vue:108
|
||||
#: src/pages/albums.vue:130
|
||||
msgid "Category"
|
||||
|
@ -500,7 +496,7 @@ msgstr ""
|
|||
msgid "Codec"
|
||||
msgstr ""
|
||||
|
||||
#: src/component/photo/toolbar.vue:328
|
||||
#: src/component/photo/toolbar.vue:327
|
||||
msgid "Color"
|
||||
msgstr ""
|
||||
|
||||
|
@ -628,7 +624,7 @@ msgstr ""
|
|||
|
||||
#: src/component/album/clipboard.vue:160
|
||||
#: src/component/label/clipboard.vue:89
|
||||
#: src/component/photo/clipboard.vue:283
|
||||
#: src/component/photo/clipboard.vue:284
|
||||
#: src/dialog/account/remove.vue:18
|
||||
#: src/dialog/album/delete.vue:18
|
||||
#: src/dialog/file/delete.vue:18
|
||||
|
@ -636,14 +632,14 @@ msgstr ""
|
|||
#: src/dialog/photo/delete.vue:18
|
||||
#: src/dialog/photo/files.vue:41
|
||||
#: src/dialog/photo/files.vue:38
|
||||
#: src/dialog/share.vue:235
|
||||
#: src/dialog/share.vue:234
|
||||
#: src/pages/library/errors.vue:94
|
||||
#: src/pages/settings/general.vue:206
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: src/component/photo/cards.vue:33
|
||||
#: src/dialog/album/edit.vue:143
|
||||
#: src/dialog/album/edit.vue:142
|
||||
#: src/dialog/photo/details.vue:566
|
||||
#: src/pages/albums.vue:444
|
||||
#: src/share/albums.vue:243
|
||||
|
@ -657,7 +653,7 @@ msgstr ""
|
|||
|
||||
#: src/dialog/photo/edit.vue:27
|
||||
#: src/dialog/photo/edit.vue:1
|
||||
#: src/dialog/photo/edit.vue:178
|
||||
#: src/dialog/photo/edit.vue:177
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
|
||||
|
@ -789,7 +785,7 @@ msgstr ""
|
|||
#: src/component/label/clipboard.vue:59
|
||||
#: src/component/photo-viewer.vue:158
|
||||
#: src/component/photo/cards.vue:63
|
||||
#: src/component/photo/clipboard.vue:121
|
||||
#: src/component/photo/clipboard.vue:183
|
||||
#: src/component/photo/list.vue:67
|
||||
#: src/component/subject/clipboard.vue:46
|
||||
#: src/dialog/photo/files.vue:55
|
||||
|
@ -934,7 +930,7 @@ msgstr ""
|
|||
msgid "Failed updating link"
|
||||
msgstr ""
|
||||
|
||||
#: src/dialog/upload.vue:159
|
||||
#: src/dialog/upload.vue:163
|
||||
msgid "Failure while importing uploaded files"
|
||||
msgstr ""
|
||||
|
||||
|
@ -975,7 +971,7 @@ msgstr ""
|
|||
|
||||
#: src/dialog/photo/edit.vue:65
|
||||
#: src/dialog/photo/edit.vue:6
|
||||
#: src/dialog/photo/edit.vue:317
|
||||
#: src/dialog/photo/edit.vue:316
|
||||
msgid "Files"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1226,7 +1222,7 @@ msgstr ""
|
|||
#: src/component/navigation.vue:1097
|
||||
#: src/dialog/photo/edit.vue:39
|
||||
#: src/dialog/photo/edit.vue:6
|
||||
#: src/dialog/photo/edit.vue:216
|
||||
#: src/dialog/photo/edit.vue:215
|
||||
#: src/pages/settings/general.vue:382
|
||||
msgid "Labels"
|
||||
msgstr ""
|
||||
|
@ -1327,7 +1323,7 @@ msgstr ""
|
|||
|
||||
#: src/component/photo/cards.vue:32
|
||||
#: src/component/photo/list.vue:47
|
||||
#: src/dialog/album/edit.vue:124
|
||||
#: src/dialog/album/edit.vue:123
|
||||
#: src/share/photo/cards.vue:32
|
||||
#: src/share/photo/list.vue:43
|
||||
msgid "Location"
|
||||
|
@ -1460,11 +1456,15 @@ msgstr ""
|
|||
msgid "Move Files"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/account.vue:85
|
||||
msgid "Must have at least 8 characters."
|
||||
msgstr ""
|
||||
|
||||
#: src/component/photo/cards.vue:39
|
||||
#: src/component/photo/list.vue:47
|
||||
#: src/component/photo/list.vue:235
|
||||
#: src/dialog/account/edit.vue:402
|
||||
#: src/dialog/album/edit.vue:106
|
||||
#: src/dialog/album/edit.vue:105
|
||||
#: src/dialog/photo/files.vue:71
|
||||
#: src/dialog/photo/files.vue:68
|
||||
#: src/dialog/photo/files.vue:34
|
||||
|
@ -1761,7 +1761,7 @@ msgstr ""
|
|||
#: src/component/navigation.vue:801
|
||||
#: src/dialog/photo/edit.vue:52
|
||||
#: src/dialog/photo/edit.vue:6
|
||||
#: src/dialog/photo/edit.vue:267
|
||||
#: src/dialog/photo/edit.vue:266
|
||||
#: src/pages/settings/general.vue:338
|
||||
msgid "People"
|
||||
msgstr ""
|
||||
|
@ -1770,7 +1770,7 @@ msgstr ""
|
|||
msgid "People you share a link with will be able to view public contents."
|
||||
msgstr ""
|
||||
|
||||
#: src/component/photo/clipboard.vue:73
|
||||
#: src/component/photo/clipboard.vue:93
|
||||
msgid "Permanently deleted"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1778,7 +1778,7 @@ msgstr ""
|
|||
msgid "Permanently remove files to free up storage."
|
||||
msgstr ""
|
||||
|
||||
#: src/model/photo.js:908
|
||||
#: src/model/photo.js:925
|
||||
msgid "Photo"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1989,11 +1989,11 @@ msgstr ""
|
|||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: src/component/photo/clipboard.vue:99
|
||||
#: src/component/photo/clipboard.vue:132
|
||||
msgid "remove failed: unknown album"
|
||||
msgstr ""
|
||||
|
||||
#: src/component/photo/clipboard.vue:260
|
||||
#: src/component/photo/clipboard.vue:261
|
||||
msgid "Remove from album"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2015,7 +2015,7 @@ msgstr ""
|
|||
msgid "Resolution"
|
||||
msgstr ""
|
||||
|
||||
#: src/component/photo/clipboard.vue:238
|
||||
#: src/component/photo/clipboard.vue:239
|
||||
msgid "Restore"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2080,19 +2080,19 @@ msgstr ""
|
|||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
#: src/dialog/upload.vue:139
|
||||
#: src/dialog/upload.vue:138
|
||||
msgid "Select albums or create a new one"
|
||||
msgstr ""
|
||||
|
||||
#: src/component/photo/clipboard.vue:45
|
||||
#: src/component/photo/clipboard.vue:56
|
||||
msgid "Selection approved"
|
||||
msgstr ""
|
||||
|
||||
#: src/component/photo/clipboard.vue:61
|
||||
#: src/component/photo/clipboard.vue:81
|
||||
msgid "Selection archived"
|
||||
msgstr ""
|
||||
|
||||
#: src/component/photo/clipboard.vue:86
|
||||
#: src/component/photo/clipboard.vue:106
|
||||
msgid "Selection restored"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2225,7 +2225,7 @@ msgid "Sort by file name"
|
|||
msgstr ""
|
||||
|
||||
#: src/component/photo/toolbar.vue:257
|
||||
#: src/dialog/album/edit.vue:181
|
||||
#: src/dialog/album/edit.vue:180
|
||||
msgid "Sort Order"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2451,12 +2451,12 @@ msgstr ""
|
|||
#: src/dialog/photo/details.vue:16
|
||||
#: src/dialog/photo/info.vue:24
|
||||
#: src/model/album.js:179
|
||||
#: src/model/photo.js:568
|
||||
#: src/model/photo.js:585
|
||||
#: src/model/photo.js:608
|
||||
#: src/model/photo.js:622
|
||||
#: src/model/photo.js:707
|
||||
#: src/model/photo.js:720
|
||||
#: src/model/photo.js:602
|
||||
#: src/model/photo.js:625
|
||||
#: src/model/photo.js:639
|
||||
#: src/model/photo.js:724
|
||||
#: src/model/photo.js:737
|
||||
#: src/options/options.js:20
|
||||
#: src/options/options.js:34
|
||||
#: src/options/options.js:51
|
||||
|
@ -2517,7 +2517,7 @@ msgstr ""
|
|||
msgid "Upload"
|
||||
msgstr ""
|
||||
|
||||
#: src/dialog/upload.vue:155
|
||||
#: src/dialog/upload.vue:159
|
||||
msgid "Upload complete"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2543,7 +2543,7 @@ msgstr ""
|
|||
|
||||
#: src/dialog/upload.vue:59
|
||||
#: src/dialog/upload.vue:67
|
||||
#: src/dialog/upload.vue:108
|
||||
#: src/dialog/upload.vue:112
|
||||
msgid "Uploading photos…"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2582,8 +2582,8 @@ msgstr ""
|
|||
#: src/component/photo/list.vue:196
|
||||
#: src/component/photo/mosaic.vue:200
|
||||
#: src/model/file.js:180
|
||||
#: src/model/photo.js:659
|
||||
#: src/model/photo.js:673
|
||||
#: src/model/photo.js:676
|
||||
#: src/model/photo.js:690
|
||||
#: src/options/options.js:318
|
||||
#: src/share/photo/cards.vue:38
|
||||
#: src/share/photo/cards.vue:198
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
class="input-new-password"
|
||||
color="secondary-dark"
|
||||
placeholder="••••••••"
|
||||
:hint="$gettext('At least 6 characters.')"
|
||||
:hint="$gettext('Must have at least 8 characters.')"
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
|
@ -97,7 +97,7 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
disabled() {
|
||||
return (this.demo || this.busy || this.oldPassword === "" || this.newPassword.length < 6 || (this.newPassword !== this.confirmPassword));
|
||||
return (this.demo || this.busy || this.oldPassword === "" || this.newPassword.length < 8 || (this.newPassword !== this.confirmPassword));
|
||||
},
|
||||
confirm() {
|
||||
this.busy = true;
|
||||
|
|
|
@ -128,10 +128,10 @@ func usersAddAction(ctx *cli.Context) error {
|
|||
uc.Email = strings.TrimSpace(res)
|
||||
}
|
||||
|
||||
if interactive && len(ctx.String("password")) < 4 {
|
||||
if interactive && len(ctx.String("password")) < entity.PasswordLen {
|
||||
validate := func(input string) error {
|
||||
if len(input) < 4 {
|
||||
return errors.New("password must have min. 4 characters")
|
||||
if len(input) < entity.PasswordLen {
|
||||
return fmt.Errorf("password must have at least %d characters", entity.PasswordLen)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package config
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/klauspost/cpuid/v2"
|
||||
"github.com/urfave/cli"
|
||||
|
||||
"github.com/photoprism/photoprism/internal/entity"
|
||||
"github.com/photoprism/photoprism/internal/face"
|
||||
"github.com/photoprism/photoprism/internal/i18n"
|
||||
"github.com/photoprism/photoprism/internal/thumb"
|
||||
|
@ -11,22 +14,37 @@ import (
|
|||
|
||||
// GlobalFlags describes global command-line parameters and flags.
|
||||
var GlobalFlags = []cli.Flag{
|
||||
cli.StringFlag{
|
||||
Name: "admin-password, a",
|
||||
Usage: "initial admin `PASSWORD`, minimum 4 characters",
|
||||
EnvVar: "PHOTOPRISM_ADMIN_PASSWORD",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "log-level, l",
|
||||
Usage: "trace, debug, info, warning, error, fatal, or panic",
|
||||
Usage: "`VERBOSITY` of log messages: trace, debug, info, warning, error, fatal, or panic",
|
||||
Value: "info",
|
||||
EnvVar: "PHOTOPRISM_LOG_LEVEL",
|
||||
},
|
||||
cli.BoolFlag{
|
||||
Name: "debug",
|
||||
Usage: "enable debug mode, show additional log messages",
|
||||
Usage: "enable debug mode, show non-essential log messages",
|
||||
EnvVar: "PHOTOPRISM_DEBUG",
|
||||
},
|
||||
cli.BoolFlag{
|
||||
Name: "trace",
|
||||
Usage: "enable trace mode, show all log messages",
|
||||
EnvVar: "PHOTOPRISM_TRACE",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "admin-password, pw",
|
||||
Usage: fmt.Sprintf("initial admin `PASSWORD`, must have at least %d characters", entity.PasswordLen),
|
||||
EnvVar: "PHOTOPRISM_ADMIN_PASSWORD",
|
||||
},
|
||||
cli.BoolFlag{
|
||||
Name: "auth, a",
|
||||
Usage: "always require password authentication, overrides the public flag",
|
||||
EnvVar: "PHOTOPRISM_AUTH",
|
||||
},
|
||||
cli.BoolFlag{
|
||||
Name: "public, p",
|
||||
Usage: "disable password authentication, WebDAV, and the advanced settings page",
|
||||
EnvVar: "PHOTOPRISM_PUBLIC",
|
||||
},
|
||||
cli.BoolFlag{
|
||||
Name: "test",
|
||||
Hidden: true,
|
||||
|
@ -50,11 +68,6 @@ var GlobalFlags = []cli.Flag{
|
|||
Usage: "your continuous support helps to pay for development and operating expenses",
|
||||
EnvVar: "PHOTOPRISM_SPONSOR",
|
||||
},
|
||||
cli.BoolFlag{
|
||||
Name: "public, p",
|
||||
Usage: "disable password authentication, WebDAV, and the advanced settings page",
|
||||
EnvVar: "PHOTOPRISM_PUBLIC",
|
||||
},
|
||||
cli.BoolFlag{
|
||||
Name: "read-only, r",
|
||||
Usage: "disable import, upload, delete, and all other operations that require write permissions",
|
||||
|
|
|
@ -15,6 +15,9 @@ import (
|
|||
"github.com/photoprism/photoprism/pkg/sanitize"
|
||||
)
|
||||
|
||||
const UsernameLen = 3
|
||||
const PasswordLen = 8
|
||||
|
||||
type Users []User
|
||||
|
||||
// User represents a person that may optionally log in as user.
|
||||
|
@ -256,8 +259,8 @@ func (m *User) SetPassword(password string) error {
|
|||
return fmt.Errorf("only registered users can change their password")
|
||||
}
|
||||
|
||||
if len(password) < 4 {
|
||||
return fmt.Errorf("new password for %s must be at least 4 characters", sanitize.Log(m.Username()))
|
||||
if len(password) < PasswordLen {
|
||||
return fmt.Errorf("password must have at least %d characters", PasswordLen)
|
||||
}
|
||||
|
||||
pw := NewPassword(m.UserUID, password)
|
||||
|
@ -354,8 +357,8 @@ func (m *User) Validate() error {
|
|||
return errors.New("username must not be empty")
|
||||
}
|
||||
|
||||
if len(m.Username()) < 4 {
|
||||
return errors.New("username must be at least 4 characters")
|
||||
if len(m.Username()) < UsernameLen {
|
||||
return fmt.Errorf("username must have at least %d characters", UsernameLen)
|
||||
}
|
||||
|
||||
var err error
|
||||
|
@ -398,9 +401,11 @@ func CreateWithPassword(uc form.UserCreate) error {
|
|||
PrimaryEmail: uc.Email,
|
||||
RoleAdmin: true,
|
||||
}
|
||||
if len(uc.Password) < 4 {
|
||||
return fmt.Errorf("new password for %s must be at least 4 characters", sanitize.Log(u.Username()))
|
||||
|
||||
if len(uc.Password) < PasswordLen {
|
||||
return fmt.Errorf("password must have at least %d characters", PasswordLen)
|
||||
}
|
||||
|
||||
err := u.Validate()
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
@ -305,18 +305,18 @@ func TestUser_Guest(t *testing.T) {
|
|||
func TestUser_SetPassword(t *testing.T) {
|
||||
t.Run("success", func(t *testing.T) {
|
||||
p := User{UserUID: "u000000000000008", UserName: "Hanna", FullName: ""}
|
||||
if err := p.SetPassword("abcdefgt"); err != nil {
|
||||
if err := p.SetPassword("insecure"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
})
|
||||
t.Run("not registered", func(t *testing.T) {
|
||||
p := User{UserUID: "", UserName: "Hanna", FullName: ""}
|
||||
assert.Error(t, p.SetPassword("abchjy"))
|
||||
assert.Error(t, p.SetPassword("insecure"))
|
||||
|
||||
})
|
||||
t.Run("password too short", func(t *testing.T) {
|
||||
p := User{UserUID: "u000000000000008", UserName: "Hanna", FullName: ""}
|
||||
assert.Error(t, p.SetPassword("abc"))
|
||||
assert.Error(t, p.SetPassword("short"))
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -324,7 +324,7 @@ func TestUser_InitPassword(t *testing.T) {
|
|||
t.Run("success", func(t *testing.T) {
|
||||
p := User{UserUID: "u000000000000009", UserName: "Hanna", FullName: ""}
|
||||
assert.Nil(t, FindPassword("u000000000000009"))
|
||||
p.InitPassword("abcdek")
|
||||
p.InitPassword("insecure")
|
||||
m := FindPassword("u000000000000009")
|
||||
|
||||
if m == nil {
|
||||
|
@ -338,12 +338,12 @@ func TestUser_InitPassword(t *testing.T) {
|
|||
t.Logf("cannot user %s: ", err)
|
||||
}
|
||||
|
||||
if err := p.SetPassword("hutfdt"); err != nil {
|
||||
if err := p.SetPassword("insecure"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
assert.NotNil(t, FindPassword("u000000000000010"))
|
||||
p.InitPassword("hutfdt")
|
||||
p.InitPassword("insecure")
|
||||
m := FindPassword("u000000000000010")
|
||||
|
||||
if m == nil {
|
||||
|
@ -353,7 +353,7 @@ func TestUser_InitPassword(t *testing.T) {
|
|||
t.Run("not registered", func(t *testing.T) {
|
||||
p := User{UserUID: "u12", UserName: "", FullName: ""}
|
||||
assert.Nil(t, FindPassword("u12"))
|
||||
p.InitPassword("dcjygkh")
|
||||
p.InitPassword("insecure")
|
||||
assert.Nil(t, FindPassword("u12"))
|
||||
})
|
||||
t.Run("password empty", func(t *testing.T) {
|
||||
|
@ -415,7 +415,7 @@ func TestUser_Validate(t *testing.T) {
|
|||
t.Run("username too short", func(t *testing.T) {
|
||||
u := &User{
|
||||
AddressID: 1,
|
||||
UserName: "val",
|
||||
UserName: "va",
|
||||
FullName: "Validate",
|
||||
PrimaryEmail: "validate@example.com",
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue