Edit photo type and sort by recently edited #394

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
This commit is contained in:
Michael Mayer 2020-07-14 12:42:31 +02:00
parent 7a7c5aa190
commit be94ff624c
20 changed files with 410 additions and 302 deletions

View file

@ -98,6 +98,7 @@
'cameras': cameras,
'sorting': [
{value: 'added', text: this.$gettext('Recently added')},
{value: 'edited', text: this.$gettext('Recently edited')},
{value: 'newest', text: this.$gettext('Newest first')},
{value: 'oldest', text: this.$gettext('Oldest first')},
{value: 'name', text: this.$gettext('Sort by file name')},

View file

@ -186,6 +186,7 @@
],
'sorting': [
{value: 'added', text: this.$gettext('Recently added')},
{value: 'edited', text: this.$gettext('Recently edited')},
{value: 'newest', text: this.$gettext('Newest first')},
{value: 'oldest', text: this.$gettext('Oldest first')},
{value: 'name', text: this.$gettext('Sort by file name')},

View file

@ -35,7 +35,7 @@ https://docs.photoprism.org/developer-guide/
@import url("navigation.css");
@import url("logs.css");
@import url("visibility.css");
@import url("results.css");
@import url("tables.css");
@import url("video.css");
@import url("maps.css");
@import url("viewer.css");

View file

@ -6,9 +6,13 @@ div.v-dialog table.v-table tfoot td {
table.v-table tbody td,
table.v-table tbody td input,
table.v-table tbody td select,
table.v-table tbody td .v-input,
table.v-table tbody td label.v-label,
table.v-table tfoot td,
table.v-table tfoot td input,
table.v-table tbody td select,
table.v-table tbody td .v-input,
table.v-table tfoot td label.v-label {
font-weight: 400;
font-size: 13px;
@ -18,3 +22,8 @@ table.v-table tbody td div.v-input__slot,
table.v-table tfoot td div.v-input__slot {
padding: 0 !important;
}
table.v-table tbody td .v-icon.src {
font-size: 13px;
margin-left: 4px;
}

View file

@ -108,6 +108,7 @@
loading: false,
sorting: [
{value: 'added', text: this.$gettext('Recently added')},
{value: 'edited', text: this.$gettext('Recently edited')},
{value: 'newest', text: this.$gettext('Newest first')},
{value: 'oldest', text: this.$gettext('Oldest first')},
{value: 'name', text: this.$gettext('Sort by file name')},

View file

@ -403,11 +403,9 @@
</template>
<script>
import {DateTime} from "luxon";
import countries from "resources/countries.json";
import Thumb from "model/thumb";
import * as options from "resources/options";
import Event from "pubsub-js";
export default {
name: 'p-tab-photo-details',

View file

@ -120,7 +120,7 @@
<td>
<translate>Aspect Ratio</translate>
</td>
<td>{{ file.AspectRatio }}</td>
<td>{{ file.AspectRatio | number('0.00') }}</td>
</tr>
<tr v-if="file.MainColor">
<td>

View file

@ -12,10 +12,21 @@
<td>{{ model.DocumentID | uppercase }}</td>
</tr>
<tr>
<td>
<translate>Type</translate>
<td :title="model.TypeSrc">
<translate>Type</translate> <v-icon v-if="model.TypeSrc === 'manual'" class="src">build</v-icon>
</td>
<td>
<v-select
@change="save"
flat solo
browser-autocomplete="off"
hide-details
color="secondary-dark"
v-model="model.Type"
:items="options.PhotoTypes()"
class="input-type">
</v-select>
</td>
<td>{{ model.Type | capitalize }}</td>
</tr>
<tr v-if="model.Path">
<td>
@ -38,27 +49,20 @@
@change="save"
flat solo dense hide-details v-model="model.OriginalName"
color="secondary-dark"
style="font-weight: 400; font-size: 13px;"
></v-text-field>
</td>
</tr>
<tr>
<td>
<translate>Title</translate>
<td :title="model.TitleSrc">
<translate>Title</translate> <v-icon v-if="model.TitleSrc === 'manual'" class="src">build</v-icon>
</td>
<td>{{ model.Title }}</td>
</tr>
<tr v-if="model.TitleSrc">
<td>
<translate>Title Source</translate>
</td>
<td>{{ model.TitleSrc | capitalize }}</td>
</tr>
<tr>
<td>
<translate>Taken</translate>
<td :title="model.TakenSrc">
<translate>Taken</translate> <v-icon v-if="model.TakenSrc === 'manual'" class="src">build</v-icon>
</td>
<td>{{ model.getDateString() }} <span v-if="model.TakenSrc">({{ model.TakenSrc | capitalize }})</span></td>
<td>{{ model.getDateString() }}</td>
</tr>
<tr>
<td>
@ -120,6 +124,14 @@
></v-switch>
</td>
</tr>
<tr>
<td :title="model.PlaceSrc">
<translate>Place</translate> <v-icon v-if="model.PlaceSrc === 'manual'" class="src">build</v-icon>
</td>
<td>
{{ model.locationInfo() }}
</td>
</tr>
<tr v-if="model.Lat">
<td>
<translate>Latitude</translate>
@ -155,7 +167,7 @@
color="secondary-dark"
type="number"
suffix="m"
style="font-weight: 400; font-size: 13px; width: 100px;"
style="width: 100px;"
></v-text-field>
</td>
</tr>
@ -208,6 +220,7 @@
<script>
import Thumb from "model/thumb";
import {DateTime, Info} from "luxon";
import * as options from "resources/options";
export default {
name: 'p-tab-photo-advanced',
@ -217,6 +230,7 @@
},
data() {
return {
options: options,
config: this.$config.values,
readonly: this.$config.get("readonly"),
};

View file

@ -52,6 +52,7 @@ export class Photo extends RestModel {
DocumentID: "",
UID: "",
Type: TypeImage,
TypeSrc: "",
Favorite: false,
Private: false,
Scan: false,
@ -443,6 +444,8 @@ export class Photo extends RestModel {
if (country) {
return country.Name;
}
} else if (this.Place && this.Place.Label) {
return this.Place.Label;
}
return this.PlaceLabel ? this.PlaceLabel : $gettext("Unknown");
@ -607,6 +610,10 @@ export class Photo extends RestModel {
values.TitleSrc = SrcManual;
}
if (values.Type) {
values.TypeSrc = SrcManual;
}
if (values.Description) {
values.DescriptionSrc = SrcManual;
}
@ -623,7 +630,13 @@ export class Photo extends RestModel {
values.CameraSrc = SrcManual;
}
return Api.put(this.getEntityResource(), values).then((response) => Promise.resolve(this.setValues(response.data)));
return Api.put(this.getEntityResource(), values).then((resp) => {
if(values.Type || values.Lat) {
config.update();
}
return Promise.resolve(this.setValues(resp.data));
});
}
static getCollectionResource() {

Binary file not shown.

View file

@ -37,15 +37,15 @@ msgstr "%{n} Kategorien gefunden"
msgid "%{n} results"
msgstr "%{n} Ergebnisse"
#: src/resources/options.js:179
#: src/resources/options.js:198
msgid "1 hour"
msgstr "1 Stunde"
#: src/resources/options.js:181
#: src/resources/options.js:200
msgid "12 hours"
msgstr "12 Stunden"
#: src/resources/options.js:180
#: src/resources/options.js:199
msgid "4 hours"
msgstr "4 Stunden"
@ -58,7 +58,7 @@ msgstr "Auf den Link klicken, um ihn zu kopieren."
msgid "Account"
msgstr "Zugang"
#: src/dialog/photo/info.vue:128
#: src/dialog/photo/info.vue:133
msgid "Accuracy"
msgstr "Genauigkeit"
@ -97,23 +97,23 @@ msgstr "Hinzufügen"
msgid "Added"
msgstr "Hinzugefügt"
#: src/resources/options.js:189
#: src/resources/options.js:208
msgid "After 1 day"
msgstr "Nach einem Tag"
#: src/resources/options.js:190
#: src/resources/options.js:209
msgid "After 3 days"
msgstr "Nach 3 Tagen"
#: src/resources/options.js:191
#: src/resources/options.js:210
msgid "After 7 days"
msgstr "Nach 7 Tagen"
#: src/resources/options.js:193
#: src/resources/options.js:212
msgid "After one month"
msgstr "Nach einem Monat"
#: src/resources/options.js:195
#: src/resources/options.js:214
msgid "After one year"
msgstr "Nach einem Jahr"
@ -125,11 +125,11 @@ msgstr ""
"Fotos und Videos können über das Kontextmenü zu bestehenden oder neuen Alben "
"hinzugefügt werden."
#: src/resources/options.js:194
#: src/resources/options.js:213
msgid "After two months"
msgstr "Nach zwei Monaten"
#: src/resources/options.js:192
#: src/resources/options.js:211
msgid "After two weeks"
msgstr "Nach zwei Wochen"
@ -137,7 +137,7 @@ msgstr "Nach zwei Wochen"
msgid "Album"
msgstr "Album"
#: src/component/album/toolbar.vue:114 src/dialog/photo/album.vue:61
#: src/component/album/toolbar.vue:115 src/dialog/photo/album.vue:61
#: src/pages/albums.vue:256 src/share/albums.vue:154
msgid "Album Name"
msgstr "Album Name"
@ -208,11 +208,11 @@ msgstr ""
"Alternativ können Dateien auch direkt auf kompatible WebDAV-Server "
"hochgeladen z.B. Nextcloud."
#: src/dialog/photo/info.vue:120
#: src/dialog/photo/info.vue:125
msgid "Altitude"
msgstr "Höhe"
#: src/dialog/photo/details.vue:445
#: src/dialog/photo/details.vue:443
msgid "Altitude (m)"
msgstr "Höhe (m)"
@ -248,7 +248,7 @@ msgstr "Übernehmen"
msgid "Archive"
msgstr "Archiv"
#: src/dialog/photo/info.vue:168
#: src/dialog/photo/info.vue:173
msgid "Archived"
msgstr "Archiviert"
@ -268,7 +268,7 @@ msgstr "Diese Kategorie wirklich löschen?"
msgid "Are you sure you want to delete this account?"
msgstr "Diesen Account wirklich löschen?"
#: src/dialog/photo/details.vue:450
#: src/dialog/photo/details.vue:448
msgid "Artist"
msgstr "Ersteller"
@ -284,15 +284,15 @@ msgstr "Mindestens 6 Zeichen."
msgid "Backup"
msgstr "Backup"
#: src/resources/options.js:214
#: src/resources/options.js:233
msgid "Black"
msgstr "Schwarz"
#: src/resources/options.js:210
#: src/resources/options.js:229
msgid "Blue"
msgstr "Blau"
#: src/resources/options.js:211
#: src/resources/options.js:230
msgid "Brown"
msgstr "Braun"
@ -312,13 +312,13 @@ msgstr "Bitte warten…"
msgid "Calendar"
msgstr "Kalender"
#: src/component/album/toolbar.vue:119 src/component/photo/list.vue:115
#: src/component/photo/toolbar.vue:200 src/dialog/album/edit.vue:125
#: src/dialog/photo/details.vue:432 src/share/photo/list.vue:94
#: src/component/album/toolbar.vue:120 src/component/photo/list.vue:115
#: src/component/photo/toolbar.vue:201 src/dialog/album/edit.vue:126
#: src/dialog/photo/details.vue:430 src/share/photo/list.vue:94
msgid "Camera"
msgstr "Kamera"
#: src/dialog/photo/info.vue:73
#: src/dialog/photo/info.vue:70
msgid "Camera Serial"
msgstr "Kamera-Seriennummer"
@ -340,8 +340,8 @@ msgstr "Abbrechen"
msgid "Cards"
msgstr "Karteikarten"
#: src/component/album/toolbar.vue:121 src/component/photo/toolbar.vue:205
#: src/dialog/album/edit.vue:127 src/dialog/photo/details.vue:436
#: src/component/album/toolbar.vue:122 src/component/photo/toolbar.vue:206
#: src/dialog/album/edit.vue:128 src/dialog/photo/details.vue:434
#: src/pages/albums.vue:257 src/share/albums.vue:155
msgid "Category"
msgstr "Kategorie"
@ -358,7 +358,7 @@ msgstr "Titel, Datum, Ort und andere Metadaten können geändert werden."
msgid "Change private flag"
msgstr "Als privat markieren"
#: src/dialog/photo/info.vue:160
#: src/dialog/photo/info.vue:165
msgid "Checked"
msgstr "Geprüft"
@ -375,7 +375,7 @@ msgstr "Schließen"
msgid "Codec"
msgstr "Codec"
#: src/component/photo/toolbar.vue:204 src/dialog/photo/details.vue:435
#: src/component/photo/toolbar.vue:205 src/dialog/photo/details.vue:433
msgid "Color"
msgstr "Farbe"
@ -423,7 +423,7 @@ msgstr "In Zwischenablage kopiert"
msgid "Copy"
msgstr "Kopieren"
#: src/dialog/photo/details.vue:451
#: src/dialog/photo/details.vue:449
msgid "Copyright"
msgstr "Copyright"
@ -438,8 +438,8 @@ msgstr "Leider nichts gefunden"
msgid "Couldn't find anything."
msgstr "Leider nichts gefunden."
#: src/component/album/toolbar.vue:118 src/component/photo/toolbar.vue:199
#: src/dialog/album/edit.vue:124 src/dialog/photo/details.vue:431
#: src/component/album/toolbar.vue:119 src/component/photo/toolbar.vue:200
#: src/dialog/album/edit.vue:125 src/dialog/photo/details.vue:429
msgid "Country"
msgstr "Land"
@ -447,7 +447,7 @@ msgstr "Land"
msgid "Create album"
msgstr "Album erstellen"
#: src/dialog/photo/info.vue:136
#: src/dialog/photo/info.vue:141
msgid "Created"
msgstr "Hinzugefügt"
@ -459,7 +459,7 @@ msgstr "Erstelle Thumbnails für"
msgid "Current Password"
msgstr "Aktuelles Passwort"
#: src/resources/options.js:209
#: src/resources/options.js:228
msgid "Cyan"
msgstr "Cyan"
@ -467,7 +467,7 @@ msgstr "Cyan"
msgid "Cyano"
msgstr "Cyano"
#: src/resources/options.js:182
#: src/resources/options.js:201
msgid "Daily"
msgstr "Täglich"
@ -490,8 +490,8 @@ msgstr "Standard Ordner"
msgid "Delete"
msgstr "Löschen"
#: src/component/album/toolbar.vue:115 src/dialog/album/edit.vue:121
#: src/dialog/photo/details.vue:453
#: src/component/album/toolbar.vue:116 src/dialog/album/edit.vue:122
#: src/dialog/photo/details.vue:451
msgid "Description"
msgstr "Beschreibung"
@ -503,7 +503,7 @@ msgstr "Unser englischer User Guide enthält eine detaillierte Anleitung."
msgid "Details"
msgstr "Details"
#: src/dialog/photo/files.vue:206
#: src/dialog/photo/files.vue:205
msgid "Dimensions"
msgstr "Auflösung"
@ -576,7 +576,7 @@ msgstr "Account bearbeiten"
msgid "Edit Photo"
msgstr "Foto bearbeiten"
#: src/dialog/photo/info.vue:152
#: src/dialog/photo/info.vue:157
msgid "Edited"
msgstr "Bearbeitet"
@ -596,7 +596,7 @@ msgstr "Fehler"
msgid "Errors"
msgstr "Fehler"
#: src/resources/options.js:183
#: src/resources/options.js:202
msgid "Every two days"
msgstr "Jeden zweiten Tag"
@ -612,11 +612,11 @@ msgstr ""
msgid "Expires"
msgstr "Ablaufdatum"
#: src/dialog/photo/details.vue:446
#: src/dialog/photo/details.vue:444
msgid "Exposure"
msgstr "Belichtungszeit"
#: src/dialog/photo/details.vue:447
#: src/dialog/photo/details.vue:445
msgid "F Number"
msgstr "F Nummer"
@ -640,7 +640,7 @@ msgstr "Fehler beim Importieren der hochgeladenen Dateien"
msgid "Fast"
msgstr "Schnell"
#: src/dialog/photo/info.vue:80
#: src/dialog/photo/info.vue:77
msgid "Favorite"
msgstr "Favorit"
@ -677,12 +677,12 @@ msgstr ""
"Dateien mit Namen wie IMG_1234 (2) oder IMG_1234 copy 2 werden als "
"Stapel zusammengefasst."
#: src/dialog/photo/details.vue:448
#: src/dialog/photo/details.vue:446
msgid "Focal Length"
msgstr "Brennweite"
#: src/dialog/account/edit.vue:326 src/dialog/account/edit.vue:332
#: src/dialog/photo/files.vue:54 src/dialog/photo/info.vue:21
#: src/dialog/photo/files.vue:54 src/dialog/photo/info.vue:24
#: src/dialog/share/upload.vue:147 src/model/folder.js:187
#: src/pages/library/files.vue:84 src/pages/library/import.vue:120
#: src/pages/library/index.vue:117
@ -717,20 +717,20 @@ msgstr "Allgemein"
msgid "German"
msgstr "Deutsch"
#: src/resources/options.js:204
#: src/resources/options.js:223
msgid "Gold"
msgstr "Gold"
#: src/resources/options.js:207
#: src/resources/options.js:226
msgid "Green"
msgstr "Grün"
#: src/resources/options.js:213
#: src/resources/options.js:232
msgid "Grey"
msgstr "Grau"
#: src/component/album/toolbar.vue:104 src/component/photo/toolbar.vue:192
#: src/dialog/album/edit.vue:114
#: src/component/album/toolbar.vue:105 src/component/photo/toolbar.vue:193
#: src/dialog/album/edit.vue:115
msgid "Group by similarity"
msgstr "Ähnlichkeit"
@ -781,6 +781,10 @@ msgstr ""
msgid "image"
msgstr "Bild"
#: src/resources/options.js:179
msgid "Image"
msgstr "Bild"
#: src/pages/library/import.vue:43 src/pages/settings/general.vue:607
msgid "Import"
msgstr "Import"
@ -835,7 +839,7 @@ msgstr "Indiziere Fotos, Videos und Sidecar-Dateien…"
msgid "Interval"
msgstr "Intervall"
#: src/dialog/photo/details.vue:536
#: src/dialog/photo/details.vue:534
msgid "Invalid date"
msgstr "Ungültiges Datum"
@ -847,7 +851,7 @@ msgstr "Eintrag"
msgid "JPEGs and thumbnails are automatically rendered as needed."
msgstr "JPEGs und Thumbnails werden bei Bedarf automatisch erstellt."
#: src/dialog/photo/details.vue:454
#: src/dialog/photo/details.vue:452
msgid "Keywords"
msgstr "Suchbegriffe"
@ -868,7 +872,7 @@ msgstr "Kategorien"
msgid "Labels deleted"
msgstr "Kategorien gelöscht"
#: src/dialog/photo/details.vue:440 src/pages/settings/general.vue:265
#: src/dialog/photo/details.vue:438 src/pages/settings/general.vue:265
msgid "Language"
msgstr "Sprache"
@ -876,7 +880,7 @@ msgstr "Sprache"
msgid "Last Backup"
msgstr "Letztes Backup"
#: src/dialog/photo/details.vue:443 src/dialog/photo/info.vue:104
#: src/dialog/photo/details.vue:441 src/dialog/photo/info.vue:109
msgid "Latitude"
msgstr "Breitengrad"
@ -884,7 +888,7 @@ msgstr "Breitengrad"
msgid "Lavender"
msgstr "Lavendel"
#: src/component/photo/toolbar.vue:201 src/dialog/photo/details.vue:433
#: src/component/photo/toolbar.vue:202 src/dialog/photo/details.vue:431
msgid "Lens"
msgstr "Objektiv"
@ -901,11 +905,11 @@ msgid "Library"
msgstr "Dateien"
#: src/component/navigation.vue:339 src/component/navigation.vue:33
#: src/dialog/photo/details.vue:452 src/pages/about/license.vue:4
#: src/dialog/photo/details.vue:450 src/pages/about/license.vue:4
msgid "License"
msgstr "Lizenz"
#: src/resources/options.js:206
#: src/resources/options.js:225
msgid "Lime"
msgstr "Hellgrün"
@ -921,6 +925,10 @@ msgstr "Link"
msgid "List"
msgstr "Liste"
#: src/resources/options.js:187
msgid "Live"
msgstr "Live"
#: src/dialog/photo/details.vue:255
msgid "Local Time"
msgstr "Ortszeit"
@ -954,11 +962,11 @@ msgstr "Abmelden"
msgid "Logs"
msgstr "Logs"
#: src/dialog/photo/details.vue:444 src/dialog/photo/info.vue:112
#: src/dialog/photo/details.vue:442 src/dialog/photo/info.vue:117
msgid "Longitude"
msgstr "Längengrad"
#: src/resources/options.js:200
#: src/resources/options.js:219
msgid "Magenta"
msgstr "Magenta"
@ -991,7 +999,7 @@ msgstr "Erlebnisse"
msgid "Monochrome"
msgstr "Monochrom"
#: src/component/photo/toolbar.vue:203 src/dialog/photo/details.vue:195
#: src/component/photo/toolbar.vue:204 src/dialog/photo/details.vue:195
msgid "Month"
msgstr "Monat"
@ -1019,8 +1027,8 @@ msgstr "Mehr als 50 Ergebnisse"
msgid "Mosaic"
msgstr "Mosaik"
#: src/component/album/toolbar.vue:105 src/component/photo/toolbar.vue:193
#: src/dialog/album/edit.vue:115
#: src/component/album/toolbar.vue:106 src/component/photo/toolbar.vue:194
#: src/dialog/album/edit.vue:116
msgid "Most relevant"
msgstr "Relevanz"
@ -1040,20 +1048,20 @@ msgstr[0] ""
msgstr[1] ""
#: src/component/photo/list.vue:117 src/dialog/account/edit.vue:488
#: src/dialog/album/edit.vue:120 src/dialog/photo/files.vue:60
#: src/dialog/photo/files.vue:205 src/dialog/photo/info.vue:27
#: src/dialog/album/edit.vue:121 src/dialog/photo/files.vue:60
#: src/dialog/photo/files.vue:204 src/dialog/photo/info.vue:30
#: src/pages/login.vue:72 src/share/photo/list.vue:95
msgid "Name"
msgstr "Name"
#: src/component/album/toolbar.vue:123 src/dialog/album/edit.vue:118
#: src/component/album/toolbar.vue:124 src/dialog/album/edit.vue:119
#: src/dialog/photo/labels.vue:117 src/pages/labels.vue:199
#: src/pages/library/files.vue:180
msgid "Name too long"
msgstr "Name zu lang"
#: src/pages/settings/sync.vue:129 src/resources/options.js:178
#: src/resources/options.js:188
#: src/pages/settings/sync.vue:129 src/resources/options.js:197
#: src/resources/options.js:207
msgid "Never"
msgstr "Nie"
@ -1061,13 +1069,13 @@ msgstr "Nie"
msgid "New Password"
msgstr "Neues Passwort"
#: src/component/album/toolbar.vue:101 src/component/photo/toolbar.vue:189
#: src/dialog/album/edit.vue:111
#: src/component/album/toolbar.vue:102 src/component/photo/toolbar.vue:190
#: src/dialog/album/edit.vue:112
msgid "Newest first"
msgstr "Neueste zuerst"
#: src/dialog/photo/archive.vue:13 src/dialog/photo/info.vue:160
#: src/dialog/photo/info.vue:187 src/dialog/photo/info.vue:214
#: src/dialog/photo/archive.vue:13 src/dialog/photo/info.vue:192
#: src/dialog/photo/info.vue:219 src/dialog/photo/info.vue:246
msgid "No"
msgstr "Nein"
@ -1153,7 +1161,7 @@ msgstr ""
"Note: Bereits angemeldete Benutzer werden nach ändern des Passworts nicht "
"automatisch abgemeldet."
#: src/dialog/photo/details.vue:455
#: src/dialog/photo/details.vue:453
msgid "Notes"
msgstr "Notizen"
@ -1169,12 +1177,12 @@ msgstr "Offline"
msgid "OK"
msgstr "OK"
#: src/component/album/toolbar.vue:102 src/component/photo/toolbar.vue:190
#: src/dialog/album/edit.vue:112
#: src/component/album/toolbar.vue:103 src/component/photo/toolbar.vue:191
#: src/dialog/album/edit.vue:113
msgid "Oldest first"
msgstr "Älteste zuerst"
#: src/resources/options.js:184
#: src/resources/options.js:203
msgid "Once a week"
msgstr "Einmal die Woche"
@ -1202,7 +1210,7 @@ msgstr "Ein Ergebnis"
msgid "Onyx"
msgstr "Onyx"
#: src/resources/options.js:203
#: src/resources/options.js:222
msgid "Orange"
msgstr "Orange"
@ -1214,7 +1222,7 @@ msgstr "Original"
msgid "Original file names will be stored and indexed."
msgstr "Die ursprünglichen Dateinamen werden im Index gespeichert."
#: src/dialog/photo/files.vue:66 src/dialog/photo/info.vue:33
#: src/dialog/photo/files.vue:66 src/dialog/photo/info.vue:36
msgid "Original Name"
msgstr "Originalname"
@ -1240,7 +1248,7 @@ msgstr "Personen"
msgid "People you share a link with will be able to view public contents."
msgstr "Jeder mit diesem Link wird öffentliche Fotos und Videos sehen können."
#: src/model/photo.js:634
#: src/model/photo.js:647
msgid "Photo"
msgstr "Foto"
@ -1264,10 +1272,14 @@ msgstr "PhotoPrism™ ist ein registriertes Markenzeichen von Michael Mayer."
msgid "Photos"
msgstr "Fotos"
#: src/resources/options.js:201
#: src/resources/options.js:220
msgid "Pink"
msgstr "Pink"
#: src/dialog/photo/info.vue:101
msgid "Place"
msgstr "Ort"
#: src/component/navigation.vue:220 src/component/navigation.vue:229
#: src/pages/settings/general.vue:124 src/pages/settings/general.vue:671
#: src/routes.js:185 src/routes.js:191 src/routes.js:197 src/routes.js:204
@ -1315,16 +1327,16 @@ msgid "Preview"
msgstr "Voransicht"
#: src/dialog/photo/files.vue:33 src/dialog/photo/files.vue:90
#: src/dialog/photo/files.vue:199
#: src/dialog/photo/files.vue:198
msgid "Primary"
msgstr "Primärdatei"
#: src/component/navigation.vue:129 src/dialog/photo/info.vue:88
#: src/component/navigation.vue:129 src/dialog/photo/info.vue:85
#: src/routes.js:171
msgid "Private"
msgstr "Privat"
#: src/resources/options.js:199
#: src/resources/options.js:218
msgid "Purple"
msgstr "Purpur"
@ -1332,7 +1344,7 @@ msgstr "Purpur"
msgid "Quality Filter"
msgstr "Qualitätsfilter"
#: src/dialog/photo/info.vue:59
#: src/dialog/photo/info.vue:56
msgid "Quality Score"
msgstr "Qualität"
@ -1344,6 +1356,10 @@ msgstr "Zufällig"
msgid "Raspberry"
msgstr "Raspberry"
#: src/resources/options.js:183
msgid "Raw"
msgstr "Raw"
#: src/pages/library/index.vue:120
msgid "Re-index all originals, including already indexed and unchanged files."
msgstr "Bereits bekannte und unveränderte Dateien neu indizieren."
@ -1353,7 +1369,12 @@ msgstr "Bereits bekannte und unveränderte Dateien neu indizieren."
msgid "Recently added"
msgstr "Zuletzt hinzugefügt"
#: src/resources/options.js:202
#: src/component/album/toolbar.vue:101 src/component/photo/toolbar.vue:189
#: src/dialog/album/edit.vue:111
msgid "Recently edited"
msgstr "Zuletzt bearbeitet"
#: src/resources/options.js:221
msgid "Red"
msgstr "Rot"
@ -1390,7 +1411,7 @@ msgstr ""
msgid "Request failed - invalid response"
msgstr "Anfrage fehlgeschlagen - ungültige Antwort"
#: src/dialog/photo/info.vue:67
#: src/dialog/photo/info.vue:64
msgid "Resolution"
msgstr "Auflösung"
@ -1415,7 +1436,7 @@ msgstr "Russisch"
msgid "Save"
msgstr "Speichern"
#: src/dialog/photo/info.vue:96
#: src/dialog/photo/info.vue:93
msgid "Scan"
msgstr "Scan"
@ -1423,9 +1444,9 @@ msgstr "Scan"
msgid "Scans"
msgstr "Scans"
#: src/component/album/toolbar.vue:116 src/component/photo/toolbar.vue:197
#: src/component/photo/toolbar.vue:33 src/dialog/album/edit.vue:122
#: src/dialog/photo/details.vue:429 src/dialog/photo/labels.vue:114
#: src/component/album/toolbar.vue:117 src/component/photo/toolbar.vue:198
#: src/component/photo/toolbar.vue:33 src/dialog/album/edit.vue:123
#: src/dialog/photo/details.vue:427 src/dialog/photo/labels.vue:114
#: src/pages/albums.vue:255 src/pages/labels.vue:196
#: src/pages/library/errors.vue:33 src/pages/library/files.vue:177
#: src/pages/places.vue:174 src/routes.js:235 src/share/albums.vue:153
@ -1522,7 +1543,7 @@ msgid "Similar"
msgstr "Ähnlich"
#: src/dialog/account/edit.vue:261 src/dialog/photo/files.vue:72
#: src/dialog/photo/files.vue:207
#: src/dialog/photo/files.vue:206
msgid "Size"
msgstr "Größe"
@ -1530,13 +1551,13 @@ msgstr "Größe"
msgid "Slow"
msgstr "Langsam"
#: src/component/album/toolbar.vue:103 src/component/photo/toolbar.vue:191
#: src/dialog/album/edit.vue:113
#: src/component/album/toolbar.vue:104 src/component/photo/toolbar.vue:192
#: src/dialog/album/edit.vue:114
msgid "Sort by file name"
msgstr "Dateinamen"
#: src/component/album/toolbar.vue:120 src/component/photo/toolbar.vue:206
#: src/dialog/album/edit.vue:126 src/dialog/photo/details.vue:437
#: src/component/album/toolbar.vue:121 src/component/photo/toolbar.vue:207
#: src/dialog/album/edit.vue:127 src/dialog/photo/details.vue:435
msgid "Sort Order"
msgstr "Sortierung"
@ -1560,7 +1581,7 @@ msgstr "Start"
msgid "States"
msgstr "Länder"
#: src/dialog/photo/files.vue:209
#: src/dialog/photo/files.vue:208
msgid "Status"
msgstr "Status"
@ -1572,7 +1593,7 @@ msgstr "Straßen"
msgid "Style"
msgstr "Style"
#: src/dialog/photo/details.vue:449
#: src/dialog/photo/details.vue:447
msgid "Subject"
msgstr "Bildinhalt"
@ -1589,24 +1610,24 @@ msgstr "Sync"
msgid "Sync raw images"
msgstr "RAW-Dateien sichern"
#: src/component/photo/list.vue:114 src/dialog/photo/info.vue:53
#: src/component/photo/list.vue:114 src/dialog/photo/info.vue:50
#: src/share/photo/list.vue:93
msgid "Taken"
msgstr "Aufgenommen"
#: src/component/photo/toolbar.vue:208 src/dialog/photo/details.vue:439
#: src/component/photo/toolbar.vue:209 src/dialog/photo/details.vue:437
msgid "Taken after"
msgstr "Erstell nach"
#: src/component/photo/toolbar.vue:207 src/dialog/photo/details.vue:438
#: src/component/photo/toolbar.vue:208 src/dialog/photo/details.vue:436
msgid "Taken before"
msgstr "Erstellt vor"
#: src/resources/options.js:208
#: src/resources/options.js:227
msgid "Teal"
msgstr "Blaugrün"
#: src/dialog/photo/details.vue:462
#: src/dialog/photo/details.vue:460
msgid "Text too long"
msgstr "Text ist zu lang"
@ -1640,19 +1661,15 @@ msgstr ""
msgid "Time UTC"
msgstr "Zeit UTC"
#: src/dialog/photo/details.vue:441
#: src/dialog/photo/details.vue:439
msgid "Time Zone"
msgstr "Zeitzone"
#: src/component/photo/list.vue:113 src/dialog/photo/details.vue:442
#: src/dialog/photo/info.vue:41 src/share/photo/list.vue:92
#: src/component/photo/list.vue:113 src/dialog/photo/details.vue:440
#: src/dialog/photo/info.vue:44 src/share/photo/list.vue:92
msgid "Title"
msgstr "Titel"
#: src/dialog/photo/info.vue:47
msgid "Title Source"
msgstr "Herkunft des Titels"
#: src/pages/albums.vue:253 src/share/albums.vue:151
msgid "Title too long"
msgstr "Titel zu lang"
@ -1682,7 +1699,7 @@ msgid "Try again using other filters or keywords."
msgstr "Versuche es mit anderen Filtern oder Suchbegriffen."
#: src/dialog/account/edit.vue:620 src/dialog/photo/files.vue:78
#: src/dialog/photo/files.vue:208 src/dialog/photo/info.vue:15
#: src/dialog/photo/files.vue:207 src/dialog/photo/info.vue:15
msgid "Type"
msgstr "Typ"
@ -1690,10 +1707,10 @@ msgstr "Typ"
msgid "UID"
msgstr "UID"
#: src/dialog/photo/details.vue:423 src/dialog/photo/info.vue:227
#: src/model/album.js:122 src/model/photo.js:399 src/model/photo.js:413
#: src/model/photo.js:436 src/model/photo.js:448 src/model/photo.js:525
#: src/model/photo.js:538 src/pages/library/errors.vue:196
#: src/dialog/photo/details.vue:421 src/dialog/photo/info.vue:241
#: src/model/album.js:122 src/model/photo.js:400 src/model/photo.js:414
#: src/model/photo.js:437 src/model/photo.js:451 src/model/photo.js:528
#: src/model/photo.js:541 src/pages/library/errors.vue:196
#: src/pages/library/errors.vue:203 src/pages/library/logs.vue:32
#: src/resources/options.js:15 src/resources/options.js:29
#: src/resources/options.js:43 src/resources/options.js:57
@ -1709,7 +1726,7 @@ msgstr "Unsortiert"
msgid "Unstack"
msgstr "Auslagern"
#: src/dialog/photo/files.vue:144 src/dialog/photo/info.vue:144
#: src/dialog/photo/files.vue:144 src/dialog/photo/info.vue:149
msgid "Updated"
msgstr "Geändert"
@ -1769,7 +1786,8 @@ msgstr "Benutzeroberfläche"
msgid "Username"
msgstr "Nutzername"
#: src/model/file.js:172 src/model/photo.js:485 src/model/photo.js:499
#: src/model/file.js:172 src/model/photo.js:488 src/model/photo.js:502
#: src/resources/options.js:191
msgid "Video"
msgstr "Video"
@ -1777,8 +1795,8 @@ msgstr "Video"
msgid "Videos"
msgstr "Videos"
#: src/component/album/toolbar.vue:117 src/component/photo/toolbar.vue:198
#: src/dialog/album/edit.vue:123 src/dialog/photo/details.vue:430
#: src/component/album/toolbar.vue:118 src/component/photo/toolbar.vue:199
#: src/dialog/album/edit.vue:124 src/dialog/photo/details.vue:428
msgid "View"
msgstr "Ansicht"
@ -1803,7 +1821,7 @@ msgstr "WebDAV Upload"
msgid "Whatever it is, we'd love to hear from you!"
msgstr "Wir freuen uns, von dir zu hören!"
#: src/resources/options.js:212
#: src/resources/options.js:231
msgid "White"
msgstr "Weiß"
@ -1811,19 +1829,19 @@ msgstr "Weiß"
msgid "Who we are"
msgstr "Über uns"
#: src/component/photo/toolbar.vue:202 src/dialog/photo/details.vue:434
#: src/component/photo/toolbar.vue:203 src/dialog/photo/details.vue:432
#: src/dialog/photo/details.vue:224
msgid "Year"
msgstr "Jahr"
#: src/resources/options.js:205
#: src/resources/options.js:224
msgid "Yellow"
msgstr "Gelb"
#: src/dialog/photo/archive.vue:15 src/dialog/photo/files.vue:92
#: src/dialog/photo/files.vue:98 src/dialog/photo/files.vue:128
#: src/dialog/photo/files.vue:134 src/dialog/photo/info.vue:159
#: src/dialog/photo/info.vue:186 src/dialog/photo/info.vue:213
#: src/dialog/photo/files.vue:134 src/dialog/photo/info.vue:191
#: src/dialog/photo/info.vue:218 src/dialog/photo/info.vue:245
msgid "Yes"
msgstr "Ja"
@ -1850,6 +1868,9 @@ msgstr ""
"Das Bewerben kommerzieller Produkte, Waren oder Dienstleistungen ist nur "
"nach vorheriger, schriftlicher Genehmigung erlaubt."
#~ msgid "Title Source"
#~ msgstr "Herkunft des Titels"
#~ msgid "Change Status"
#~ msgstr "Status ändern"

View file

@ -174,6 +174,25 @@ export const MapsStyle = () => [
},
];
export const PhotoTypes = () => [
{
"text": $gettext("Image"),
"value": "image",
},
{
"text": $gettext("Raw"),
"value": "raw",
},
{
"text": $gettext("Live"),
"value": "live",
},
{
"text": $gettext("Video"),
"value": "video",
},
];
export const Intervals = () => [
{"value": 0, "text": $gettext("Never")},
{"value": 3600, "text": $gettext("1 hour")},

File diff suppressed because one or more lines are too long

View file

@ -31,15 +31,15 @@ msgstr ""
msgid "%{n} results"
msgstr ""
#: src/resources/options.js:179
#: src/resources/options.js:198
msgid "1 hour"
msgstr ""
#: src/resources/options.js:181
#: src/resources/options.js:200
msgid "12 hours"
msgstr ""
#: src/resources/options.js:180
#: src/resources/options.js:199
msgid "4 hours"
msgstr ""
@ -53,7 +53,7 @@ msgstr ""
msgid "Account"
msgstr ""
#: src/dialog/photo/info.vue:128
#: src/dialog/photo/info.vue:133
msgid "Accuracy"
msgstr ""
@ -96,23 +96,23 @@ msgstr ""
msgid "Added"
msgstr ""
#: src/resources/options.js:189
#: src/resources/options.js:208
msgid "After 1 day"
msgstr ""
#: src/resources/options.js:190
#: src/resources/options.js:209
msgid "After 3 days"
msgstr ""
#: src/resources/options.js:191
#: src/resources/options.js:210
msgid "After 7 days"
msgstr ""
#: src/resources/options.js:193
#: src/resources/options.js:212
msgid "After one month"
msgstr ""
#: src/resources/options.js:195
#: src/resources/options.js:214
msgid "After one year"
msgstr ""
@ -120,11 +120,11 @@ msgstr ""
msgid "After selecting photos or videos from search results, you can add them to existing or new albums using the context menu."
msgstr ""
#: src/resources/options.js:194
#: src/resources/options.js:213
msgid "After two months"
msgstr ""
#: src/resources/options.js:192
#: src/resources/options.js:211
msgid "After two weeks"
msgstr ""
@ -132,7 +132,7 @@ msgstr ""
msgid "Album"
msgstr ""
#: src/component/album/toolbar.vue:114
#: src/component/album/toolbar.vue:115
#: src/dialog/photo/album.vue:61
#: src/pages/albums.vue:256
#: src/share/albums.vue:154
@ -210,11 +210,11 @@ msgstr ""
msgid "Alternatively, you can upload files directly to WebDAV servers like Nextcloud."
msgstr ""
#: src/dialog/photo/info.vue:120
#: src/dialog/photo/info.vue:125
msgid "Altitude"
msgstr ""
#: src/dialog/photo/details.vue:445
#: src/dialog/photo/details.vue:443
msgid "Altitude (m)"
msgstr ""
@ -252,7 +252,7 @@ msgstr ""
msgid "Archive"
msgstr ""
#: src/dialog/photo/info.vue:168
#: src/dialog/photo/info.vue:173
msgid "Archived"
msgstr ""
@ -272,7 +272,7 @@ msgstr ""
msgid "Are you sure you want to delete this account?"
msgstr ""
#: src/dialog/photo/details.vue:450
#: src/dialog/photo/details.vue:448
msgid "Artist"
msgstr ""
@ -288,15 +288,15 @@ msgstr ""
msgid "Backup"
msgstr ""
#: src/resources/options.js:214
#: src/resources/options.js:233
msgid "Black"
msgstr ""
#: src/resources/options.js:210
#: src/resources/options.js:229
msgid "Blue"
msgstr ""
#: src/resources/options.js:211
#: src/resources/options.js:230
msgid "Brown"
msgstr ""
@ -318,16 +318,16 @@ msgstr ""
msgid "Calendar"
msgstr ""
#: src/component/album/toolbar.vue:119
#: src/component/album/toolbar.vue:120
#: src/component/photo/list.vue:115
#: src/component/photo/toolbar.vue:200
#: src/dialog/album/edit.vue:125
#: src/dialog/photo/details.vue:432
#: src/component/photo/toolbar.vue:201
#: src/dialog/album/edit.vue:126
#: src/dialog/photo/details.vue:430
#: src/share/photo/list.vue:94
msgid "Camera"
msgstr ""
#: src/dialog/photo/info.vue:73
#: src/dialog/photo/info.vue:70
msgid "Camera Serial"
msgstr ""
@ -357,10 +357,10 @@ msgstr ""
msgid "Cards"
msgstr ""
#: src/component/album/toolbar.vue:121
#: src/component/photo/toolbar.vue:205
#: src/dialog/album/edit.vue:127
#: src/dialog/photo/details.vue:436
#: src/component/album/toolbar.vue:122
#: src/component/photo/toolbar.vue:206
#: src/dialog/album/edit.vue:128
#: src/dialog/photo/details.vue:434
#: src/pages/albums.vue:257
#: src/share/albums.vue:155
msgid "Category"
@ -379,7 +379,7 @@ msgstr ""
msgid "Change private flag"
msgstr ""
#: src/dialog/photo/info.vue:160
#: src/dialog/photo/info.vue:165
msgid "Checked"
msgstr ""
@ -397,8 +397,8 @@ msgstr ""
msgid "Codec"
msgstr ""
#: src/component/photo/toolbar.vue:204
#: src/dialog/photo/details.vue:435
#: src/component/photo/toolbar.vue:205
#: src/dialog/photo/details.vue:433
msgid "Color"
msgstr ""
@ -450,7 +450,7 @@ msgstr ""
msgid "Copy"
msgstr ""
#: src/dialog/photo/details.vue:451
#: src/dialog/photo/details.vue:449
msgid "Copyright"
msgstr ""
@ -471,10 +471,10 @@ msgstr ""
msgid "Couldn't find anything."
msgstr ""
#: src/component/album/toolbar.vue:118
#: src/component/photo/toolbar.vue:199
#: src/dialog/album/edit.vue:124
#: src/dialog/photo/details.vue:431
#: src/component/album/toolbar.vue:119
#: src/component/photo/toolbar.vue:200
#: src/dialog/album/edit.vue:125
#: src/dialog/photo/details.vue:429
msgid "Country"
msgstr ""
@ -482,7 +482,7 @@ msgstr ""
msgid "Create album"
msgstr ""
#: src/dialog/photo/info.vue:136
#: src/dialog/photo/info.vue:141
msgid "Created"
msgstr ""
@ -494,7 +494,7 @@ msgstr ""
msgid "Current Password"
msgstr ""
#: src/resources/options.js:209
#: src/resources/options.js:228
msgid "Cyan"
msgstr ""
@ -502,7 +502,7 @@ msgstr ""
msgid "Cyano"
msgstr ""
#: src/resources/options.js:182
#: src/resources/options.js:201
msgid "Daily"
msgstr ""
@ -528,9 +528,9 @@ msgstr ""
msgid "Delete"
msgstr ""
#: src/component/album/toolbar.vue:115
#: src/dialog/album/edit.vue:121
#: src/dialog/photo/details.vue:453
#: src/component/album/toolbar.vue:116
#: src/dialog/album/edit.vue:122
#: src/dialog/photo/details.vue:451
msgid "Description"
msgstr ""
@ -542,7 +542,7 @@ msgstr ""
msgid "Details"
msgstr ""
#: src/dialog/photo/files.vue:206
#: src/dialog/photo/files.vue:205
msgid "Dimensions"
msgstr ""
@ -627,7 +627,7 @@ msgstr ""
msgid "Edit Photo"
msgstr ""
#: src/dialog/photo/info.vue:152
#: src/dialog/photo/info.vue:157
msgid "Edited"
msgstr ""
@ -648,7 +648,7 @@ msgstr ""
msgid "Errors"
msgstr ""
#: src/resources/options.js:183
#: src/resources/options.js:202
msgid "Every two days"
msgstr ""
@ -661,11 +661,11 @@ msgstr ""
msgid "Expires"
msgstr ""
#: src/dialog/photo/details.vue:446
#: src/dialog/photo/details.vue:444
msgid "Exposure"
msgstr ""
#: src/dialog/photo/details.vue:447
#: src/dialog/photo/details.vue:445
msgid "F Number"
msgstr ""
@ -690,7 +690,7 @@ msgstr ""
msgid "Fast"
msgstr ""
#: src/dialog/photo/info.vue:80
#: src/dialog/photo/info.vue:77
msgid "Favorite"
msgstr ""
@ -720,14 +720,14 @@ msgstr ""
msgid "Files with sequential names like 'IMG_1234 (2)' or 'IMG_1234 copy 2' belong to the same photo."
msgstr ""
#: src/dialog/photo/details.vue:448
#: src/dialog/photo/details.vue:446
msgid "Focal Length"
msgstr ""
#: src/dialog/account/edit.vue:326
#: src/dialog/account/edit.vue:332
#: src/dialog/photo/files.vue:54
#: src/dialog/photo/info.vue:21
#: src/dialog/photo/info.vue:24
#: src/dialog/share/upload.vue:147
#: src/model/folder.js:187
#: src/pages/library/files.vue:84
@ -766,21 +766,21 @@ msgstr ""
msgid "German"
msgstr ""
#: src/resources/options.js:204
#: src/resources/options.js:223
msgid "Gold"
msgstr ""
#: src/resources/options.js:207
#: src/resources/options.js:226
msgid "Green"
msgstr ""
#: src/resources/options.js:213
#: src/resources/options.js:232
msgid "Grey"
msgstr ""
#: src/component/album/toolbar.vue:104
#: src/component/photo/toolbar.vue:192
#: src/dialog/album/edit.vue:114
#: src/component/album/toolbar.vue:105
#: src/component/photo/toolbar.vue:193
#: src/dialog/album/edit.vue:115
msgid "Group by similarity"
msgstr ""
@ -828,6 +828,10 @@ msgstr ""
msgid "image"
msgstr ""
#: src/resources/options.js:179
msgid "Image"
msgstr ""
#: src/pages/library/import.vue:43
#: src/pages/settings/general.vue:607
msgid "Import"
@ -878,7 +882,7 @@ msgstr ""
msgid "Interval"
msgstr ""
#: src/dialog/photo/details.vue:536
#: src/dialog/photo/details.vue:534
msgid "Invalid date"
msgstr ""
@ -890,7 +894,7 @@ msgstr ""
msgid "JPEGs and thumbnails are automatically rendered as needed."
msgstr ""
#: src/dialog/photo/details.vue:454
#: src/dialog/photo/details.vue:452
msgid "Keywords"
msgstr ""
@ -915,7 +919,7 @@ msgstr ""
msgid "Labels deleted"
msgstr ""
#: src/dialog/photo/details.vue:440
#: src/dialog/photo/details.vue:438
#: src/pages/settings/general.vue:265
msgid "Language"
msgstr ""
@ -924,8 +928,8 @@ msgstr ""
msgid "Last Backup"
msgstr ""
#: src/dialog/photo/details.vue:443
#: src/dialog/photo/info.vue:104
#: src/dialog/photo/details.vue:441
#: src/dialog/photo/info.vue:109
msgid "Latitude"
msgstr ""
@ -933,8 +937,8 @@ msgstr ""
msgid "Lavender"
msgstr ""
#: src/component/photo/toolbar.vue:201
#: src/dialog/photo/details.vue:433
#: src/component/photo/toolbar.vue:202
#: src/dialog/photo/details.vue:431
msgid "Lens"
msgstr ""
@ -954,12 +958,12 @@ msgstr ""
#: src/component/navigation.vue:339
#: src/component/navigation.vue:33
#: src/dialog/photo/details.vue:452
#: src/dialog/photo/details.vue:450
#: src/pages/about/license.vue:4
msgid "License"
msgstr ""
#: src/resources/options.js:206
#: src/resources/options.js:225
msgid "Lime"
msgstr ""
@ -976,6 +980,10 @@ msgstr ""
msgid "List"
msgstr ""
#: src/resources/options.js:187
msgid "Live"
msgstr ""
#: src/dialog/photo/details.vue:255
msgid "Local Time"
msgstr ""
@ -1007,12 +1015,12 @@ msgstr ""
msgid "Logs"
msgstr ""
#: src/dialog/photo/details.vue:444
#: src/dialog/photo/info.vue:112
#: src/dialog/photo/details.vue:442
#: src/dialog/photo/info.vue:117
msgid "Longitude"
msgstr ""
#: src/resources/options.js:200
#: src/resources/options.js:219
msgid "Magenta"
msgstr ""
@ -1047,7 +1055,7 @@ msgstr ""
msgid "Monochrome"
msgstr ""
#: src/component/photo/toolbar.vue:203
#: src/component/photo/toolbar.vue:204
#: src/dialog/photo/details.vue:195
msgid "Month"
msgstr ""
@ -1080,9 +1088,9 @@ msgstr ""
msgid "Mosaic"
msgstr ""
#: src/component/album/toolbar.vue:105
#: src/component/photo/toolbar.vue:193
#: src/dialog/album/edit.vue:115
#: src/component/album/toolbar.vue:106
#: src/component/photo/toolbar.vue:194
#: src/dialog/album/edit.vue:116
msgid "Most relevant"
msgstr ""
@ -1106,17 +1114,17 @@ msgstr[1] ""
#: src/component/photo/list.vue:117
#: src/dialog/account/edit.vue:488
#: src/dialog/album/edit.vue:120
#: src/dialog/album/edit.vue:121
#: src/dialog/photo/files.vue:60
#: src/dialog/photo/files.vue:205
#: src/dialog/photo/info.vue:27
#: src/dialog/photo/files.vue:204
#: src/dialog/photo/info.vue:30
#: src/pages/login.vue:72
#: src/share/photo/list.vue:95
msgid "Name"
msgstr ""
#: src/component/album/toolbar.vue:123
#: src/dialog/album/edit.vue:118
#: src/component/album/toolbar.vue:124
#: src/dialog/album/edit.vue:119
#: src/dialog/photo/labels.vue:117
#: src/pages/labels.vue:199
#: src/pages/library/files.vue:180
@ -1124,8 +1132,8 @@ msgid "Name too long"
msgstr ""
#: src/pages/settings/sync.vue:129
#: src/resources/options.js:178
#: src/resources/options.js:188
#: src/resources/options.js:197
#: src/resources/options.js:207
msgid "Never"
msgstr ""
@ -1133,16 +1141,16 @@ msgstr ""
msgid "New Password"
msgstr ""
#: src/component/album/toolbar.vue:101
#: src/component/photo/toolbar.vue:189
#: src/dialog/album/edit.vue:111
#: src/component/album/toolbar.vue:102
#: src/component/photo/toolbar.vue:190
#: src/dialog/album/edit.vue:112
msgid "Newest first"
msgstr ""
#: src/dialog/photo/archive.vue:13
#: src/dialog/photo/info.vue:160
#: src/dialog/photo/info.vue:187
#: src/dialog/photo/info.vue:214
#: src/dialog/photo/info.vue:192
#: src/dialog/photo/info.vue:219
#: src/dialog/photo/info.vue:246
msgid "No"
msgstr ""
@ -1215,7 +1223,7 @@ msgstr ""
msgid "Note: Updating the password will not revoke access from already authenticated users."
msgstr ""
#: src/dialog/photo/details.vue:455
#: src/dialog/photo/details.vue:453
msgid "Notes"
msgstr ""
@ -1232,13 +1240,13 @@ msgstr ""
msgid "OK"
msgstr ""
#: src/component/album/toolbar.vue:102
#: src/component/photo/toolbar.vue:190
#: src/dialog/album/edit.vue:112
#: src/component/album/toolbar.vue:103
#: src/component/photo/toolbar.vue:191
#: src/dialog/album/edit.vue:113
msgid "Oldest first"
msgstr ""
#: src/resources/options.js:184
#: src/resources/options.js:203
msgid "Once a week"
msgstr ""
@ -1268,7 +1276,7 @@ msgstr ""
msgid "Onyx"
msgstr ""
#: src/resources/options.js:203
#: src/resources/options.js:222
msgid "Orange"
msgstr ""
@ -1281,7 +1289,7 @@ msgid "Original file names will be stored and indexed."
msgstr ""
#: src/dialog/photo/files.vue:66
#: src/dialog/photo/info.vue:33
#: src/dialog/photo/info.vue:36
msgid "Original Name"
msgstr ""
@ -1310,7 +1318,7 @@ msgstr ""
msgid "People you share a link with will be able to view public contents."
msgstr ""
#: src/model/photo.js:634
#: src/model/photo.js:647
msgid "Photo"
msgstr ""
@ -1331,10 +1339,14 @@ msgstr ""
msgid "Photos"
msgstr ""
#: src/resources/options.js:201
#: src/resources/options.js:220
msgid "Pink"
msgstr ""
#: src/dialog/photo/info.vue:101
msgid "Place"
msgstr ""
#: src/component/navigation.vue:220
#: src/component/navigation.vue:229
#: src/pages/settings/general.vue:124
@ -1389,17 +1401,17 @@ msgstr ""
#: src/dialog/photo/files.vue:33
#: src/dialog/photo/files.vue:90
#: src/dialog/photo/files.vue:199
#: src/dialog/photo/files.vue:198
msgid "Primary"
msgstr ""
#: src/component/navigation.vue:129
#: src/dialog/photo/info.vue:88
#: src/dialog/photo/info.vue:85
#: src/routes.js:171
msgid "Private"
msgstr ""
#: src/resources/options.js:199
#: src/resources/options.js:218
msgid "Purple"
msgstr ""
@ -1407,7 +1419,7 @@ msgstr ""
msgid "Quality Filter"
msgstr ""
#: src/dialog/photo/info.vue:59
#: src/dialog/photo/info.vue:56
msgid "Quality Score"
msgstr ""
@ -1419,6 +1431,10 @@ msgstr ""
msgid "Raspberry"
msgstr ""
#: src/resources/options.js:183
msgid "Raw"
msgstr ""
#: src/pages/library/index.vue:120
msgid "Re-index all originals, including already indexed and unchanged files."
msgstr ""
@ -1429,7 +1445,13 @@ msgstr ""
msgid "Recently added"
msgstr ""
#: src/resources/options.js:202
#: src/component/album/toolbar.vue:101
#: src/component/photo/toolbar.vue:189
#: src/dialog/album/edit.vue:111
msgid "Recently edited"
msgstr ""
#: src/resources/options.js:221
msgid "Red"
msgstr ""
@ -1465,7 +1487,7 @@ msgstr ""
msgid "Request failed - invalid response"
msgstr ""
#: src/dialog/photo/info.vue:67
#: src/dialog/photo/info.vue:64
msgid "Resolution"
msgstr ""
@ -1493,7 +1515,7 @@ msgstr ""
msgid "Save"
msgstr ""
#: src/dialog/photo/info.vue:96
#: src/dialog/photo/info.vue:93
msgid "Scan"
msgstr ""
@ -1501,11 +1523,11 @@ msgstr ""
msgid "Scans"
msgstr ""
#: src/component/album/toolbar.vue:116
#: src/component/photo/toolbar.vue:197
#: src/component/album/toolbar.vue:117
#: src/component/photo/toolbar.vue:198
#: src/component/photo/toolbar.vue:33
#: src/dialog/album/edit.vue:122
#: src/dialog/photo/details.vue:429
#: src/dialog/album/edit.vue:123
#: src/dialog/photo/details.vue:427
#: src/dialog/photo/labels.vue:114
#: src/pages/albums.vue:255
#: src/pages/labels.vue:196
@ -1615,7 +1637,7 @@ msgstr ""
#: src/dialog/account/edit.vue:261
#: src/dialog/photo/files.vue:72
#: src/dialog/photo/files.vue:207
#: src/dialog/photo/files.vue:206
msgid "Size"
msgstr ""
@ -1623,16 +1645,16 @@ msgstr ""
msgid "Slow"
msgstr ""
#: src/component/album/toolbar.vue:103
#: src/component/photo/toolbar.vue:191
#: src/dialog/album/edit.vue:113
#: src/component/album/toolbar.vue:104
#: src/component/photo/toolbar.vue:192
#: src/dialog/album/edit.vue:114
msgid "Sort by file name"
msgstr ""
#: src/component/album/toolbar.vue:120
#: src/component/photo/toolbar.vue:206
#: src/dialog/album/edit.vue:126
#: src/dialog/photo/details.vue:437
#: src/component/album/toolbar.vue:121
#: src/component/photo/toolbar.vue:207
#: src/dialog/album/edit.vue:127
#: src/dialog/photo/details.vue:435
msgid "Sort Order"
msgstr ""
@ -1656,7 +1678,7 @@ msgstr ""
msgid "States"
msgstr ""
#: src/dialog/photo/files.vue:209
#: src/dialog/photo/files.vue:208
msgid "Status"
msgstr ""
@ -1668,7 +1690,7 @@ msgstr ""
msgid "Style"
msgstr ""
#: src/dialog/photo/details.vue:449
#: src/dialog/photo/details.vue:447
msgid "Subject"
msgstr ""
@ -1685,26 +1707,26 @@ msgid "Sync raw images"
msgstr ""
#: src/component/photo/list.vue:114
#: src/dialog/photo/info.vue:53
#: src/dialog/photo/info.vue:50
#: src/share/photo/list.vue:93
msgid "Taken"
msgstr ""
#: src/component/photo/toolbar.vue:208
#: src/dialog/photo/details.vue:439
#: src/component/photo/toolbar.vue:209
#: src/dialog/photo/details.vue:437
msgid "Taken after"
msgstr ""
#: src/component/photo/toolbar.vue:207
#: src/dialog/photo/details.vue:438
#: src/component/photo/toolbar.vue:208
#: src/dialog/photo/details.vue:436
msgid "Taken before"
msgstr ""
#: src/resources/options.js:208
#: src/resources/options.js:227
msgid "Teal"
msgstr ""
#: src/dialog/photo/details.vue:462
#: src/dialog/photo/details.vue:460
msgid "Text too long"
msgstr ""
@ -1729,21 +1751,17 @@ msgstr ""
msgid "Time UTC"
msgstr ""
#: src/dialog/photo/details.vue:441
#: src/dialog/photo/details.vue:439
msgid "Time Zone"
msgstr ""
#: src/component/photo/list.vue:113
#: src/dialog/photo/details.vue:442
#: src/dialog/photo/info.vue:41
#: src/dialog/photo/details.vue:440
#: src/dialog/photo/info.vue:44
#: src/share/photo/list.vue:92
msgid "Title"
msgstr ""
#: src/dialog/photo/info.vue:47
msgid "Title Source"
msgstr ""
#: src/pages/albums.vue:253
#: src/share/albums.vue:151
msgid "Title too long"
@ -1781,7 +1799,7 @@ msgstr ""
#: src/dialog/account/edit.vue:620
#: src/dialog/photo/files.vue:78
#: src/dialog/photo/files.vue:208
#: src/dialog/photo/files.vue:207
#: src/dialog/photo/info.vue:15
msgid "Type"
msgstr ""
@ -1790,15 +1808,15 @@ msgstr ""
msgid "UID"
msgstr ""
#: src/dialog/photo/details.vue:423
#: src/dialog/photo/info.vue:227
#: src/dialog/photo/details.vue:421
#: src/dialog/photo/info.vue:241
#: src/model/album.js:122
#: src/model/photo.js:399
#: src/model/photo.js:413
#: src/model/photo.js:436
#: src/model/photo.js:448
#: src/model/photo.js:525
#: src/model/photo.js:538
#: src/model/photo.js:400
#: src/model/photo.js:414
#: src/model/photo.js:437
#: src/model/photo.js:451
#: src/model/photo.js:528
#: src/model/photo.js:541
#: src/pages/library/errors.vue:196
#: src/pages/library/errors.vue:203
#: src/pages/library/logs.vue:32
@ -1820,7 +1838,7 @@ msgid "Unstack"
msgstr ""
#: src/dialog/photo/files.vue:144
#: src/dialog/photo/info.vue:144
#: src/dialog/photo/info.vue:149
msgid "Updated"
msgstr ""
@ -1886,8 +1904,9 @@ msgid "Username"
msgstr ""
#: src/model/file.js:172
#: src/model/photo.js:485
#: src/model/photo.js:499
#: src/model/photo.js:488
#: src/model/photo.js:502
#: src/resources/options.js:191
msgid "Video"
msgstr ""
@ -1896,10 +1915,10 @@ msgstr ""
msgid "Videos"
msgstr ""
#: src/component/album/toolbar.vue:117
#: src/component/photo/toolbar.vue:198
#: src/dialog/album/edit.vue:123
#: src/dialog/photo/details.vue:430
#: src/component/album/toolbar.vue:118
#: src/component/photo/toolbar.vue:199
#: src/dialog/album/edit.vue:124
#: src/dialog/photo/details.vue:428
msgid "View"
msgstr ""
@ -1920,7 +1939,7 @@ msgstr ""
msgid "Whatever it is, we'd love to hear from you!"
msgstr ""
#: src/resources/options.js:212
#: src/resources/options.js:231
msgid "White"
msgstr ""
@ -1928,13 +1947,13 @@ msgstr ""
msgid "Who we are"
msgstr ""
#: src/component/photo/toolbar.vue:202
#: src/dialog/photo/details.vue:434
#: src/component/photo/toolbar.vue:203
#: src/dialog/photo/details.vue:432
#: src/dialog/photo/details.vue:224
msgid "Year"
msgstr ""
#: src/resources/options.js:205
#: src/resources/options.js:224
msgid "Yellow"
msgstr ""
@ -1943,9 +1962,9 @@ msgstr ""
#: src/dialog/photo/files.vue:98
#: src/dialog/photo/files.vue:128
#: src/dialog/photo/files.vue:134
#: src/dialog/photo/info.vue:159
#: src/dialog/photo/info.vue:186
#: src/dialog/photo/info.vue:213
#: src/dialog/photo/info.vue:191
#: src/dialog/photo/info.vue:218
#: src/dialog/photo/info.vue:245
msgid "Yes"
msgstr ""

View file

@ -21,6 +21,7 @@ const (
SortOrderName = "name"
SortOrderSimilar = "similar"
SortOrderRelevance = "relevance"
SortOrderEdited = "edited"
// Unknown values.
YearUnknown = -1

View file

@ -39,6 +39,7 @@ type Photo struct {
TakenSrc string `gorm:"type:varbinary(8);" json:"TakenSrc" yaml:"TakenSrc,omitempty"`
PhotoUID string `gorm:"type:varbinary(42);unique_index;index:idx_photos_taken_uid;" json:"UID" yaml:"UID"`
PhotoType string `gorm:"type:varbinary(8);default:'image';" json:"Type" yaml:"Type"`
TypeSrc string `gorm:"type:varbinary(8);" json:"TypeSrc" yaml:"TypeSrc,omitempty"`
PhotoTitle string `gorm:"type:varchar(255);" json:"Title" yaml:"Title"`
TitleSrc string `gorm:"type:varbinary(8);" json:"TitleSrc" yaml:"TitleSrc,omitempty"`
PhotoDescription string `gorm:"type:text;" json:"Description" yaml:"Description,omitempty"`

View file

@ -19,6 +19,7 @@ type Details struct {
// Photo represents a photo edit form.
type Photo struct {
PhotoType string `json:"Type"`
TypeSrc string `json:"TypeSrc"`
TakenAt time.Time `json:"TakenAt"`
TakenAtLocal time.Time `json:"TakenAtLocal"`
TakenSrc string `json:"TakenSrc"`

View file

@ -306,8 +306,11 @@ func (ind *Index) MediaFile(m *MediaFile, o IndexOptions, originalName string) (
}
}
if m.IsRaw() && photo.PhotoType == entity.TypeImage {
photo.PhotoType = entity.TypeRaw
if photo.TypeSrc == entity.SrcAuto {
// Update photo type only if not manually modified.
if m.IsRaw() && photo.PhotoType == entity.TypeImage {
photo.PhotoType = entity.TypeRaw
}
}
case m.IsVideo():
if metaData := m.MetaData(); metaData.Error == nil {
@ -364,10 +367,13 @@ func (ind *Index) MediaFile(m *MediaFile, o IndexOptions, originalName string) (
}
}
if file.FileDuration == 0 || file.FileDuration > time.Millisecond*3100 {
photo.PhotoType = entity.TypeVideo
} else {
photo.PhotoType = entity.TypeLive
if photo.TypeSrc == entity.SrcAuto {
// Update photo type only if not manually modified.
if file.FileDuration == 0 || file.FileDuration > time.Millisecond*3100 {
photo.PhotoType = entity.TypeVideo
} else {
photo.PhotoType = entity.TypeLive
}
}
if file.FileWidth == 0 && primaryFile.FileWidth > 0 {

View file

@ -17,6 +17,7 @@ type PhotoResult struct {
UUID string `json:"DocumentID,omitempty"`
PhotoUID string `json:"UID"`
PhotoType string `json:"Type"`
TypeSrc string `json:"TypeSrc"`
TakenAt time.Time `json:"TakenAt"`
TakenAtLocal time.Time `json:"TakenAtLocal"`
TakenSrc string `json:"TakenSrc"`
@ -40,8 +41,8 @@ type PhotoResult struct {
PhotoResolution int `json:"Resolution"`
PhotoScan bool `json:"Scan"`
CameraID uint `json:"CameraID"` // Camera
CameraSerial string `json:"CameraSerial"`
CameraSrc string `json:"CameraSrc"`
CameraSerial string `json:"CameraSerial,omitempty"`
CameraSrc string `json:"CameraSrc,omitempty"`
CameraModel string `json:"CameraModel"`
CameraMake string `json:"CameraMake"`
LensID uint `json:"LensID"` // Lens

View file

@ -321,6 +321,8 @@ func PhotoSearch(f form.PhotoSearch) (results PhotoResults, count int, err error
// Set sort order for results.
switch f.Order {
case entity.SortOrderEdited:
s = s.Where("edited_at IS NOT NULL").Order("edited_at DESC, photos.photo_uid, files.file_primary DESC")
case entity.SortOrderRelevance:
if f.Label != "" {
s = s.Order("photo_quality DESC, photos_labels.uncertainty ASC, taken_at DESC, files.file_primary DESC")