mirror of
https://github.com/photoprism/photoprism.git
synced 2026-07-18 09:05:25 +00:00
UX: Sort archived pictures by "Recently Deleted" #3975
Signed-off-by: Michael Mayer <michael@photoprism.app>
This commit is contained in:
parent
440400d523
commit
ab9e156c9a
56 changed files with 12062 additions and 12487 deletions
|
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: ci@photoprism.app\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-09 06:08+0000\n"
|
||||
"PO-Revision-Date: 2024-09-03 12:37+0000\n"
|
||||
"Last-Translator: Weblate Translation Memory <noreply-mt-weblate-translation-"
|
||||
|
|
@ -16,8 +16,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :("
|
||||
"n>6 && n<11) ? 3 : 4;\n"
|
||||
"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :"
|
||||
"(n>6 && n<11) ? 3 : 4;\n"
|
||||
"X-Generator: Weblate 5.7.1\n"
|
||||
|
||||
#: messages.go:101
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: ci@photoprism.app\n"
|
||||
"POT-Creation-Date: 2024-07-08 13:45+0000\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-09 06:08+0000\n"
|
||||
"PO-Revision-Date: 2024-07-30 06:22+0000\n"
|
||||
"Last-Translator: Cotignac <jan-eric@myhrgren.se>\n"
|
||||
"Language-Team: Swedish <https://translate.photoprism.app/projects/photoprism/"
|
||||
|
|
|
|||
164
frontend/package-lock.json
generated
164
frontend/package-lock.json
generated
|
|
@ -16,26 +16,26 @@
|
|||
"@babel/register": "^7.24.6",
|
||||
"@babel/runtime": "^7.25.6",
|
||||
"@lcdp/offline-plugin": "^5.1.1",
|
||||
"@vvo/tzdb": "^6.144.0",
|
||||
"axios": "^1.7.6",
|
||||
"@vvo/tzdb": "^6.145.0",
|
||||
"axios": "^1.7.7",
|
||||
"axios-mock-adapter": "^2.0.0",
|
||||
"babel-loader": "^9.1.3",
|
||||
"babel-plugin-istanbul": "^7.0.0",
|
||||
"browserslist": "^4.23.3",
|
||||
"chai": "^5.1.1",
|
||||
"cheerio": "^1.0.0",
|
||||
"cheerio": "1.0.0-rc.12",
|
||||
"chrome-finder": "^1.0.7",
|
||||
"core-js": "^3.38.1",
|
||||
"cross-env": "^7.0.3",
|
||||
"css-loader": "^7.1.2",
|
||||
"cssnano": "^7.0.5",
|
||||
"cssnano": "^7.0.6",
|
||||
"easygettext": "^2.17.0",
|
||||
"eslint": ">=8.57.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-config-standard": "^17.1.0",
|
||||
"eslint-formatter-pretty": "^6.0.1",
|
||||
"eslint-plugin-html": "^8.1.1",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"eslint-plugin-import": "^2.30.0",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-prettier": "^5.2.1",
|
||||
"eslint-plugin-promise": "^6.6.0",
|
||||
|
|
@ -61,17 +61,17 @@
|
|||
"mocha": "^10.7.3",
|
||||
"node-storage-shim": "^2.0.1",
|
||||
"photoswipe": "^4.1.3",
|
||||
"postcss": "^8.4.41",
|
||||
"postcss": "^8.4.45",
|
||||
"postcss-import": "^16.1.0",
|
||||
"postcss-loader": "^8.1.1",
|
||||
"postcss-preset-env": "^10.0.2",
|
||||
"postcss-preset-env": "^10.0.3",
|
||||
"postcss-reporter": "^7.1.0",
|
||||
"postcss-url": "^10.1.3",
|
||||
"prettier": "^3.3.3",
|
||||
"pubsub-js": "^1.9.4",
|
||||
"regenerator-runtime": "^0.14.1",
|
||||
"resolve-url-loader": "^5.0.0",
|
||||
"sass": "^1.77.8",
|
||||
"sass": "^1.78.0",
|
||||
"sass-loader": "^16.0.1",
|
||||
"server": "^1.0.39",
|
||||
"sockette": "^2.0.6",
|
||||
|
|
@ -4821,18 +4821,6 @@
|
|||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/body-parser/node_modules/iconv-lite": {
|
||||
"version": "0.4.24",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"safer-buffer": ">= 2.1.2 < 3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/body-parser/node_modules/ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
|
|
@ -5108,25 +5096,21 @@
|
|||
}
|
||||
},
|
||||
"node_modules/cheerio": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz",
|
||||
"integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==",
|
||||
"version": "1.0.0-rc.12",
|
||||
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
|
||||
"integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"cheerio-select": "^2.1.0",
|
||||
"dom-serializer": "^2.0.0",
|
||||
"domhandler": "^5.0.3",
|
||||
"domutils": "^3.1.0",
|
||||
"encoding-sniffer": "^0.2.0",
|
||||
"htmlparser2": "^9.1.0",
|
||||
"parse5": "^7.1.2",
|
||||
"parse5-htmlparser2-tree-adapter": "^7.0.0",
|
||||
"parse5-parser-stream": "^7.1.2",
|
||||
"undici": "^6.19.5",
|
||||
"whatwg-mimetype": "^4.0.0"
|
||||
"domutils": "^3.0.1",
|
||||
"htmlparser2": "^8.0.1",
|
||||
"parse5": "^7.0.0",
|
||||
"parse5-htmlparser2-tree-adapter": "^7.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.17"
|
||||
"node": ">= 6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/cheeriojs/cheerio?sponsor=1"
|
||||
|
|
@ -6457,9 +6441,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.5.20",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.20.tgz",
|
||||
"integrity": "sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==",
|
||||
"version": "1.5.22",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.22.tgz",
|
||||
"integrity": "sha512-tKYm5YHPU1djz0O+CGJ+oJIvimtsCcwR2Z9w7Skh08lUdyzXY5djods3q+z2JkWdb7tCcmM//eVavSRAiaPRNg==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/emoji-regex": {
|
||||
|
|
@ -6486,19 +6470,6 @@
|
|||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/encoding-sniffer": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz",
|
||||
"integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"iconv-lite": "^0.6.3",
|
||||
"whatwg-encoding": "^3.1.1"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/fb55/encoding-sniffer?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/engine.io": {
|
||||
"version": "6.5.5",
|
||||
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz",
|
||||
|
|
@ -6576,9 +6547,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/envinfo": {
|
||||
"version": "7.13.0",
|
||||
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz",
|
||||
"integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==",
|
||||
"version": "7.14.0",
|
||||
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz",
|
||||
"integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==",
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"envinfo": "dist/cli.js"
|
||||
|
|
@ -7017,6 +6988,25 @@
|
|||
"node": ">=16.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-html/node_modules/htmlparser2": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz",
|
||||
"integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==",
|
||||
"funding": [
|
||||
"https://github.com/fb55/htmlparser2?sponsor=1",
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/fb55"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"domelementtype": "^2.3.0",
|
||||
"domhandler": "^5.0.3",
|
||||
"domutils": "^3.1.0",
|
||||
"entities": "^4.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-import": {
|
||||
"version": "2.30.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz",
|
||||
|
|
@ -8813,9 +8803,9 @@
|
|||
"license": "MIT"
|
||||
},
|
||||
"node_modules/htmlparser2": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz",
|
||||
"integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==",
|
||||
"version": "8.0.2",
|
||||
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
|
||||
"integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
|
||||
"funding": [
|
||||
"https://github.com/fb55/htmlparser2?sponsor=1",
|
||||
{
|
||||
|
|
@ -8827,8 +8817,8 @@
|
|||
"dependencies": {
|
||||
"domelementtype": "^2.3.0",
|
||||
"domhandler": "^5.0.3",
|
||||
"domutils": "^3.1.0",
|
||||
"entities": "^4.5.0"
|
||||
"domutils": "^3.0.1",
|
||||
"entities": "^4.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/http-errors": {
|
||||
|
|
@ -8879,12 +8869,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/iconv-lite": {
|
||||
"version": "0.6.3",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
|
||||
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
|
||||
"version": "0.4.24",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"safer-buffer": ">= 2.1.2 < 3.0.0"
|
||||
"safer-buffer": ">= 2.1.2 < 3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
|
|
@ -11432,18 +11422,6 @@
|
|||
"url": "https://github.com/inikulin/parse5?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/parse5-parser-stream": {
|
||||
"version": "7.1.2",
|
||||
"resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz",
|
||||
"integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"parse5": "^7.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/inikulin/parse5?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/parseurl": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
||||
|
|
@ -13319,18 +13297,6 @@
|
|||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/raw-body/node_modules/iconv-lite": {
|
||||
"version": "0.4.24",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"safer-buffer": ">= 2.1.2 < 3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/read-cache": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
||||
|
|
@ -15316,15 +15282,6 @@
|
|||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/undici": {
|
||||
"version": "6.19.8",
|
||||
"resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz",
|
||||
"integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=18.17"
|
||||
}
|
||||
},
|
||||
"node_modules/undici-types": {
|
||||
"version": "6.19.8",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
|
||||
|
|
@ -16250,27 +16207,6 @@
|
|||
"url": "https://opencollective.com/webpack"
|
||||
}
|
||||
},
|
||||
"node_modules/whatwg-encoding": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
|
||||
"integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"iconv-lite": "0.6.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/whatwg-mimetype": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
|
||||
"integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/which": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
|
|
|
|||
|
|
@ -28,26 +28,26 @@
|
|||
"@babel/register": "^7.24.6",
|
||||
"@babel/runtime": "^7.25.6",
|
||||
"@lcdp/offline-plugin": "^5.1.1",
|
||||
"@vvo/tzdb": "^6.144.0",
|
||||
"axios": "^1.7.6",
|
||||
"@vvo/tzdb": "^6.145.0",
|
||||
"axios": "^1.7.7",
|
||||
"axios-mock-adapter": "^2.0.0",
|
||||
"babel-loader": "^9.1.3",
|
||||
"babel-plugin-istanbul": "^7.0.0",
|
||||
"browserslist": "^4.23.3",
|
||||
"chai": "^5.1.1",
|
||||
"cheerio": "^1.0.0",
|
||||
"cheerio": "1.0.0-rc.12",
|
||||
"chrome-finder": "^1.0.7",
|
||||
"core-js": "^3.38.1",
|
||||
"cross-env": "^7.0.3",
|
||||
"css-loader": "^7.1.2",
|
||||
"cssnano": "^7.0.5",
|
||||
"cssnano": "^7.0.6",
|
||||
"easygettext": "^2.17.0",
|
||||
"eslint": ">=8.57.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-config-standard": "^17.1.0",
|
||||
"eslint-formatter-pretty": "^6.0.1",
|
||||
"eslint-plugin-html": "^8.1.1",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"eslint-plugin-import": "^2.30.0",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-prettier": "^5.2.1",
|
||||
"eslint-plugin-promise": "^6.6.0",
|
||||
|
|
@ -73,17 +73,17 @@
|
|||
"mocha": "^10.7.3",
|
||||
"node-storage-shim": "^2.0.1",
|
||||
"photoswipe": "^4.1.3",
|
||||
"postcss": "^8.4.41",
|
||||
"postcss": "^8.4.45",
|
||||
"postcss-import": "^16.1.0",
|
||||
"postcss-loader": "^8.1.1",
|
||||
"postcss-preset-env": "^10.0.2",
|
||||
"postcss-preset-env": "^10.0.3",
|
||||
"postcss-reporter": "^7.1.0",
|
||||
"postcss-url": "^10.1.3",
|
||||
"prettier": "^3.3.3",
|
||||
"pubsub-js": "^1.9.4",
|
||||
"regenerator-runtime": "^0.14.1",
|
||||
"resolve-url-loader": "^5.0.0",
|
||||
"sass": "^1.77.8",
|
||||
"sass": "^1.78.0",
|
||||
"sass-loader": "^16.0.1",
|
||||
"server": "^1.0.39",
|
||||
"sockette": "^2.0.6",
|
||||
|
|
|
|||
|
|
@ -122,27 +122,6 @@ export default {
|
|||
collectionRoute: this.$route.meta?.collectionRoute ? this.$route.meta.collectionRoute : "albums",
|
||||
navIcon: this.$rtl ? "navigate_before" : "navigate_next",
|
||||
searchExpanded: false,
|
||||
options: {
|
||||
views: [
|
||||
{ value: "mosaic", text: this.$gettext("Mosaic") },
|
||||
{ value: "cards", text: this.$gettext("Cards") },
|
||||
{ value: "list", text: this.$gettext("List") },
|
||||
],
|
||||
countries: countries,
|
||||
cameras: cameras,
|
||||
sorting: [
|
||||
{ value: "newest", text: this.$gettext("Newest First") },
|
||||
{ value: "oldest", text: this.$gettext("Oldest First") },
|
||||
{ value: "added", text: this.$gettext("Recently Added") },
|
||||
{ value: "edited", text: this.$gettext("Recently Edited") },
|
||||
{ value: "title", text: this.$gettext("Picture Title") },
|
||||
{ value: "name", text: this.$gettext("File Name") },
|
||||
{ value: "size", text: this.$gettext("File Size") },
|
||||
{ value: "duration", text: this.$gettext("Video Duration") },
|
||||
{ value: "similar", text: this.$gettext("Visual Similarity") },
|
||||
{ value: "relevance", text: this.$gettext("Most Relevant") },
|
||||
],
|
||||
},
|
||||
dialog: {
|
||||
share: false,
|
||||
upload: false,
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@
|
|||
hide-details
|
||||
color="secondary-dark"
|
||||
background-color="secondary"
|
||||
:items="options.sorting"
|
||||
:items="sortOptions"
|
||||
@change="
|
||||
(v) => {
|
||||
updateQuery({ order: v });
|
||||
|
|
@ -306,6 +306,7 @@ export default {
|
|||
data() {
|
||||
const features = this.$config.settings().features;
|
||||
const readonly = this.$config.get("readonly");
|
||||
|
||||
return {
|
||||
experimental: this.$config.get("experimental"),
|
||||
isFullScreen: !!document.fullscreenElement,
|
||||
|
|
@ -330,18 +331,6 @@ export default {
|
|||
{ value: "cards", text: this.$gettext("Cards") },
|
||||
{ value: "list", text: this.$gettext("List") },
|
||||
],
|
||||
sorting: [
|
||||
{ value: "newest", text: this.$gettext("Newest First") },
|
||||
{ value: "oldest", text: this.$gettext("Oldest First") },
|
||||
{ value: "added", text: this.$gettext("Recently Added") },
|
||||
{ value: "edited", text: this.$gettext("Recently Edited") },
|
||||
{ value: "title", text: this.$gettext("Picture Title") },
|
||||
{ value: "name", text: this.$gettext("File Name") },
|
||||
{ value: "size", text: this.$gettext("File Size") },
|
||||
{ value: "duration", text: this.$gettext("Video Duration") },
|
||||
{ value: "similar", text: this.$gettext("Visual Similarity") },
|
||||
{ value: "relevance", text: this.$gettext("Most Relevant") },
|
||||
],
|
||||
},
|
||||
dialog: {
|
||||
delete: false,
|
||||
|
|
@ -355,12 +344,54 @@ export default {
|
|||
cameraOptions() {
|
||||
return this.all.cameras.concat(this.config.cameras);
|
||||
},
|
||||
lensOptions() {
|
||||
return this.all.lenses.concat(this.config.lenses);
|
||||
},
|
||||
categoryOptions() {
|
||||
return this.all.categories.concat(this.config.categories);
|
||||
},
|
||||
sortOptions() {
|
||||
let result;
|
||||
|
||||
switch (this.context) {
|
||||
case "archive":
|
||||
result = [
|
||||
{ value: "newest", text: this.$gettext("Newest First") },
|
||||
{ value: "oldest", text: this.$gettext("Oldest First") },
|
||||
{ value: "added", text: this.$gettext("Recently Added") },
|
||||
{ value: "deleted", text: this.$gettext("Recently Deleted") },
|
||||
{ value: "title", text: this.$gettext("Picture Title") },
|
||||
{ value: "name", text: this.$gettext("File Name") },
|
||||
{ value: "size", text: this.$gettext("File Size") },
|
||||
{ value: "duration", text: this.$gettext("Video Duration") },
|
||||
];
|
||||
break;
|
||||
case "review":
|
||||
result = [
|
||||
{ value: "newest", text: this.$gettext("Newest First") },
|
||||
{ value: "oldest", text: this.$gettext("Oldest First") },
|
||||
{ value: "added", text: this.$gettext("Recently Added") },
|
||||
{ value: "title", text: this.$gettext("Picture Title") },
|
||||
{ value: "name", text: this.$gettext("File Name") },
|
||||
{ value: "size", text: this.$gettext("File Size") },
|
||||
{ value: "duration", text: this.$gettext("Video Duration") },
|
||||
{ value: "similar", text: this.$gettext("Visual Similarity") },
|
||||
];
|
||||
break;
|
||||
default:
|
||||
result = [
|
||||
{ value: "newest", text: this.$gettext("Newest First") },
|
||||
{ value: "oldest", text: this.$gettext("Oldest First") },
|
||||
{ value: "added", text: this.$gettext("Recently Added") },
|
||||
{ value: "edited", text: this.$gettext("Recently Edited") },
|
||||
{ value: "title", text: this.$gettext("Picture Title") },
|
||||
{ value: "name", text: this.$gettext("File Name") },
|
||||
{ value: "size", text: this.$gettext("File Size") },
|
||||
{ value: "duration", text: this.$gettext("Video Duration") },
|
||||
{ value: "similar", text: this.$gettext("Visual Similarity") },
|
||||
{ value: "relevance", text: this.$gettext("Most Relevant") },
|
||||
];
|
||||
}
|
||||
|
||||
return result;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
colorOptions() {
|
||||
|
|
|
|||
|
|
@ -79,12 +79,10 @@ export default {
|
|||
{ value: "newest", text: this.$gettext("Newest First") },
|
||||
{ value: "oldest", text: this.$gettext("Oldest First") },
|
||||
{ value: "added", text: this.$gettext("Recently Added") },
|
||||
{ value: "edited", text: this.$gettext("Recently Edited") },
|
||||
{ value: "title", text: this.$gettext("Picture Title") },
|
||||
{ value: "name", text: this.$gettext("File Name") },
|
||||
{ value: "size", text: this.$gettext("File Size") },
|
||||
{ value: "duration", text: this.$gettext("Video Duration") },
|
||||
{ value: "similar", text: this.$gettext("Visual Similarity") },
|
||||
{ value: "relevance", text: this.$gettext("Most Relevant") },
|
||||
],
|
||||
categories: this.$config.albumCategories(),
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -246,17 +246,34 @@ export default {
|
|||
return "newest";
|
||||
}
|
||||
|
||||
let queryParam = this.$route.query["order"];
|
||||
let storedType = window.localStorage.getItem("photos_order");
|
||||
let storageKey;
|
||||
let defaultOrder;
|
||||
|
||||
if (queryParam) {
|
||||
window.localStorage.setItem("photos_order", queryParam);
|
||||
return queryParam;
|
||||
} else if (storedType) {
|
||||
return storedType;
|
||||
switch (this.context) {
|
||||
case "archive":
|
||||
storageKey = "archive_order";
|
||||
defaultOrder = "deleted";
|
||||
break;
|
||||
case "review":
|
||||
storageKey = "review_order";
|
||||
defaultOrder = "added";
|
||||
break;
|
||||
default:
|
||||
storageKey = "photos_order";
|
||||
defaultOrder = "newest";
|
||||
}
|
||||
|
||||
return "newest";
|
||||
let queryOrder = this.$route.query["order"];
|
||||
let storageOrder = window.localStorage.getItem(storageKey);
|
||||
|
||||
if (queryOrder) {
|
||||
window.localStorage.setItem(storageKey, queryOrder);
|
||||
return queryOrder;
|
||||
} else if (storageOrder) {
|
||||
return storageOrder;
|
||||
}
|
||||
|
||||
return defaultOrder;
|
||||
},
|
||||
openDate(index) {
|
||||
const photo = this.results[index];
|
||||
|
|
|
|||
|
|
@ -174,6 +174,8 @@ func searchPhotos(f form.SearchPhotos, sess *entity.Session, resultCols string)
|
|||
s = s.Where("photos.edited_at IS NOT NULL").Order("photos.edited_at DESC, files.media_id")
|
||||
case sortby.Updated:
|
||||
s = s.Where("photos.updated_at > photos.created_at").Order("photos.updated_at DESC, files.media_id")
|
||||
case sortby.Deleted:
|
||||
s = s.Order("photos.deleted_at DESC, files.media_id")
|
||||
case sortby.Relevance:
|
||||
if f.Label != "" {
|
||||
s = s.Order("photos.photo_quality DESC, photos_labels.uncertainty ASC, files.time_index")
|
||||
|
|
|
|||
|
|
@ -972,7 +972,7 @@ func TestPhotos(t *testing.T) {
|
|||
|
||||
assert.IsType(t, PhotoResults{}, photos)
|
||||
})
|
||||
t.Run("search all recently edited", func(t *testing.T) {
|
||||
t.Run("RecentlyEdited", func(t *testing.T) {
|
||||
var frm form.SearchPhotos
|
||||
|
||||
frm.Query = ""
|
||||
|
|
@ -1004,6 +1004,38 @@ func TestPhotos(t *testing.T) {
|
|||
}
|
||||
}
|
||||
})
|
||||
t.Run("RecentlyDeleted", func(t *testing.T) {
|
||||
var frm form.SearchPhotos
|
||||
|
||||
frm.Query = ""
|
||||
frm.Count = 10
|
||||
frm.Offset = 0
|
||||
frm.Order = sortby.Deleted
|
||||
|
||||
// Parse query string and filter.
|
||||
if err := frm.ParseQueryString(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
photos, _, err := Photos(frm)
|
||||
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
assert.GreaterOrEqual(t, len(photos), 1)
|
||||
|
||||
for _, r := range photos {
|
||||
assert.IsType(t, Photo{}, r)
|
||||
assert.NotEmpty(t, r.ID)
|
||||
assert.NotEmpty(t, r.CameraID)
|
||||
assert.NotEmpty(t, r.LensID)
|
||||
|
||||
if fix, ok := entity.PhotoFixtures[r.PhotoName]; ok {
|
||||
assert.Equal(t, fix.PhotoName, r.PhotoName)
|
||||
}
|
||||
}
|
||||
})
|
||||
t.Run("search unstacked panoramas", func(t *testing.T) {
|
||||
var frm form.SearchPhotos
|
||||
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ const (
|
|||
Duration = "duration"
|
||||
Size = "size"
|
||||
Count = "count"
|
||||
Newest = "newest"
|
||||
Oldest = "oldest"
|
||||
Added = "added"
|
||||
Imported = "imported"
|
||||
Edited = "edited"
|
||||
Updated = "updated"
|
||||
Newest = "newest"
|
||||
Oldest = "oldest"
|
||||
Deleted = "deleted"
|
||||
Place = "place"
|
||||
Moment = "moment"
|
||||
Favorites = "favorites"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue