@strapi/upload 5.46.1 → 5.47.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/future/components/Drawer.js +7 -1
- package/dist/admin/future/components/Drawer.js.map +1 -1
- package/dist/admin/future/components/Drawer.mjs +7 -1
- package/dist/admin/future/components/Drawer.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +275 -147
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +279 -152
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +1 -1
- package/dist/admin/future/services/assets.js +32 -1
- package/dist/admin/future/services/assets.js.map +1 -1
- package/dist/admin/future/services/assets.mjs +32 -2
- package/dist/admin/future/services/assets.mjs.map +1 -1
- package/dist/admin/future/services/folders.js +33 -1
- package/dist/admin/future/services/folders.js.map +1 -1
- package/dist/admin/future/services/folders.mjs +33 -2
- package/dist/admin/future/services/folders.mjs.map +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.d.ts +8 -0
- package/dist/admin/src/future/services/assets.d.ts +6 -2
- package/dist/admin/src/future/services/folders.d.ts +1 -1
- package/dist/admin/translations/{dk.json.js → da.json.js} +3 -3
- package/dist/admin/translations/{dk.json.js.map → da.json.js.map} +1 -1
- package/dist/admin/translations/{dk.json.mjs → da.json.mjs} +3 -3
- package/dist/admin/translations/{dk.json.mjs.map → da.json.mjs.map} +1 -1
- package/dist/admin/translations/en.json.js +5 -1
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +5 -1
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/sk.json.js +105 -1
- package/dist/admin/translations/sk.json.js.map +1 -1
- package/dist/admin/translations/sk.json.mjs +105 -1
- package/dist/admin/translations/sk.json.mjs.map +1 -1
- package/dist/server/bootstrap.js +0 -3
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/server/bootstrap.mjs +0 -3
- package/dist/server/bootstrap.mjs.map +1 -1
- package/dist/server/services/ai-metadata-jobs.js +0 -23
- package/dist/server/services/ai-metadata-jobs.js.map +1 -1
- package/dist/server/services/ai-metadata-jobs.mjs +0 -23
- package/dist/server/services/ai-metadata-jobs.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +0 -1
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/services/ai-metadata-jobs.d.ts +0 -1
- package/dist/server/src/services/ai-metadata-jobs.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +0 -1
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -10,7 +10,6 @@ var en = {
|
|
|
10
10
|
"asset-details.videoNotSupported": "Your browser does not support the video tag.",
|
|
11
11
|
"asset-details.size": "Size",
|
|
12
12
|
"asset-details.dimensions": "Dimensions",
|
|
13
|
-
"asset-details.duration": "Duration",
|
|
14
13
|
"asset-details.creationDate": "Creation date",
|
|
15
14
|
"asset-details.lastUpdated": "Last updated",
|
|
16
15
|
"asset-details.createdBy": "Created by",
|
|
@@ -19,6 +18,11 @@ var en = {
|
|
|
19
18
|
"asset-details.fileName": "File name",
|
|
20
19
|
"asset-details.caption": "Caption",
|
|
21
20
|
"asset-details.alternativeText": "Alternative text",
|
|
21
|
+
"asset-details.location": "Location",
|
|
22
|
+
"asset-details.save": "Save changes",
|
|
23
|
+
"asset-details.update.success": "File updated",
|
|
24
|
+
"asset-details.update.error": "Failed to update the file.",
|
|
25
|
+
"asset-details.field.empty": "{label} is currently empty.",
|
|
22
26
|
"asset-details.noPreview": "No preview available",
|
|
23
27
|
"upload.generic-error": "An error occurred while uploading the file.",
|
|
24
28
|
"upload.progress": "Upload progress",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -8,7 +8,6 @@ var en = {
|
|
|
8
8
|
"asset-details.videoNotSupported": "Your browser does not support the video tag.",
|
|
9
9
|
"asset-details.size": "Size",
|
|
10
10
|
"asset-details.dimensions": "Dimensions",
|
|
11
|
-
"asset-details.duration": "Duration",
|
|
12
11
|
"asset-details.creationDate": "Creation date",
|
|
13
12
|
"asset-details.lastUpdated": "Last updated",
|
|
14
13
|
"asset-details.createdBy": "Created by",
|
|
@@ -17,6 +16,11 @@ var en = {
|
|
|
17
16
|
"asset-details.fileName": "File name",
|
|
18
17
|
"asset-details.caption": "Caption",
|
|
19
18
|
"asset-details.alternativeText": "Alternative text",
|
|
19
|
+
"asset-details.location": "Location",
|
|
20
|
+
"asset-details.save": "Save changes",
|
|
21
|
+
"asset-details.update.success": "File updated",
|
|
22
|
+
"asset-details.update.error": "Failed to update the file.",
|
|
23
|
+
"asset-details.field.empty": "{label} is currently empty.",
|
|
20
24
|
"asset-details.noPreview": "No preview available",
|
|
21
25
|
"upload.generic-error": "An error occurred while uploading the file.",
|
|
22
26
|
"upload.progress": "Upload progress",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -2,9 +2,52 @@
|
|
|
2
2
|
|
|
3
3
|
var sk = {
|
|
4
4
|
"apiError.FileTooBig": "Nahrávaný súbor prekročil maximálnu povolenú veľkosť.",
|
|
5
|
+
"assets.uploaded": "{number, plural, one {# súbor} other {# súbory}} boli úspešne nahraté",
|
|
6
|
+
"asset-details.title": "Podrobnosti súboru",
|
|
7
|
+
"asset-details.description": "Zobrazuje informácie o súbore a metadáta",
|
|
8
|
+
"asset-details.fileInfo": "Informácie o súbore",
|
|
9
|
+
"asset-details.error": "Nepodarilo sa načítať podrobnosti súboru.",
|
|
10
|
+
"asset-details.videoNotSupported": "Váš prehliadač nepodporuje video tag.",
|
|
11
|
+
"asset-details.size": "Veľkosť",
|
|
12
|
+
"asset-details.dimensions": "Rozmery",
|
|
13
|
+
"asset-details.duration": "Trvanie",
|
|
14
|
+
"asset-details.creationDate": "Dátum vytvorenia",
|
|
15
|
+
"asset-details.lastUpdated": "Naposledy aktualizované",
|
|
16
|
+
"asset-details.createdBy": "Vytvoril",
|
|
17
|
+
"asset-details.extension": "Prípona",
|
|
18
|
+
"asset-details.assetId": "ID súboru",
|
|
19
|
+
"asset-details.fileName": "Názov súboru",
|
|
20
|
+
"asset-details.caption": "Popis",
|
|
21
|
+
"asset-details.alternativeText": "Alternatívny text",
|
|
22
|
+
"asset-details.noPreview": "Náhľad nie je k dispozícii",
|
|
5
23
|
"upload.generic-error": "Počas nahrávania súboru nastala chyba.",
|
|
24
|
+
"upload.progress": "Priebeh nahrávania",
|
|
25
|
+
"upload.progress.description": "Zobrazuje priebeh a stav nahrávania",
|
|
26
|
+
"upload.progress.failed": "Nahrávanie zlyhalo",
|
|
27
|
+
"upload.progress.failed.subtitle": "Skúste prosím súbory nahrať znova",
|
|
28
|
+
"upload.progress.success": "Nahrávanie úspešné!",
|
|
29
|
+
"upload.progress.success.subtitle": "{count, plural, one {# súbor bol úspešne nahratý} other {# súbory boli úspešne nahraté}}",
|
|
30
|
+
"upload.progress.success.subtitle.withErrors": "{successCount} nahratých, {errorCount} zlyhalo",
|
|
31
|
+
"upload.progress.uploading.withCount": "Nahráva sa {total} položiek ({percentage}%)",
|
|
32
|
+
"upload.progress.uploading-files": "Nahráva sa {count, plural, one {# súbor} other {# súbory}}",
|
|
33
|
+
"upload.progress.indicator.in-progress": "Indikátor prebiehajúceho nahrávania",
|
|
34
|
+
"upload.progress.indicator.complete": "Indikátor dokončeného nahrávania",
|
|
35
|
+
"upload.progress.label": "Nahrávanie",
|
|
36
|
+
"upload.progress.errors.title": "Nepodarilo sa nahrať:",
|
|
37
|
+
"upload.progress.cancel": "Zrušiť",
|
|
38
|
+
"upload.progress.canceled": "Nahrávania zrušené",
|
|
39
|
+
"upload.progress.canceled.subtitle": "Niektoré súbory neboli nahraté",
|
|
40
|
+
"upload.progress.canceled.subtitle.all": "Všetky nahrávania boli zrušené",
|
|
41
|
+
"upload.progress.retry": "Skúsiť znova",
|
|
42
|
+
"upload.progress.file.uploading": "Nahráva sa...",
|
|
43
|
+
"upload.progress.file.canceled": "Zrušené",
|
|
44
|
+
"upload.progress.file.uploaded": "Nahraté",
|
|
45
|
+
"upload.progress.maximize": "Maximalizovať",
|
|
46
|
+
"upload.progress.minimize": "Minimalizovať",
|
|
47
|
+
"upload.progress.close": "Zavrieť",
|
|
6
48
|
"bulk.select.label": "Vybrať všetky súbory",
|
|
7
49
|
"button.next": "Ďalej",
|
|
50
|
+
"new": "Nový",
|
|
8
51
|
"checkControl.crop-duplicate": "Duplikovať a orezať prílohu",
|
|
9
52
|
"checkControl.crop-original": "Orezať originál prílohy",
|
|
10
53
|
"content.isLoading": "Obsah sa načítava.",
|
|
@@ -12,26 +55,42 @@ var sk = {
|
|
|
12
55
|
"control-card.cancel": "Zrušiť",
|
|
13
56
|
"control-card.copy-link": "Skopírovať odkaz",
|
|
14
57
|
"control-card.crop": "Orezať",
|
|
58
|
+
"control-card.set-focal-point": "Nastaviť fokálny bod",
|
|
59
|
+
"control-card.stop-focal-point": "Zrušiť výber fokálneho bodu",
|
|
60
|
+
"control-card.reset-focal-point": "Obnoviť na stred",
|
|
61
|
+
"control-card.save-focal-point": "Uložiť fokálny bod",
|
|
15
62
|
"control-card.download": "Stiahnúť",
|
|
16
63
|
"control-card.edit": "Upraviť",
|
|
64
|
+
"control-card.remove-selection": "Odstrániť z výberu",
|
|
17
65
|
"control-card.replace-media": "Nahradiť súbor",
|
|
18
66
|
"control-card.save": "Uložiť",
|
|
19
67
|
"control-card.stop-crop": "Ukončiť orezávanie",
|
|
68
|
+
"dropzone.upload.message": "Pustite sem na nahratie do",
|
|
20
69
|
"filter.add": "Pridať filter",
|
|
21
70
|
"form.button.replace-media": "Nahradiť súbor",
|
|
22
71
|
"form.input.description.file-alt": "Tento text sa ukáže, keď sa súbor nepodarí zobraziť.",
|
|
23
72
|
"form.input.label.file-alt": "Alternatívny text",
|
|
24
73
|
"form.input.label.file-caption": "Popis",
|
|
74
|
+
"form.input.placeholder.file-caption": "Zadajte popis",
|
|
25
75
|
"form.input.label.file-name": "Názov súboru",
|
|
26
76
|
"form.upload-url.error.url.invalid": "Jedna URL adresa je neplatná",
|
|
27
77
|
"form.upload-url.error.url.invalids": "{number} URL adresy/ies sú/je neplatné/ých ",
|
|
28
78
|
"header.actions.add-assets": "Nový súbor",
|
|
29
79
|
"header.actions.add-folder": "Nový priečinok",
|
|
80
|
+
"folder.create.title": "Nový priečinok",
|
|
81
|
+
"folder.form.name.label": "Názov priečinka",
|
|
82
|
+
"folder.create.submit": "Vytvoriť priečinok",
|
|
83
|
+
"folder.create.form.error.name-required": "Názov je povinný",
|
|
84
|
+
"folder.create.form.error.unknown": "Počas vytvárania priečinka sa vyskytla chyba",
|
|
85
|
+
"folder.create.success": "Priečinok bol vytvorený",
|
|
30
86
|
"header.actions.add-assets.folder": "priečinok",
|
|
31
87
|
"header.actions.upload-assets": "Nahrať súbory",
|
|
32
88
|
"header.actions.upload-new-asset": "Nahrať nový súbor",
|
|
33
89
|
"header.content.assets-empty": "Žiadne súbory",
|
|
34
90
|
"header.content.assets": "{numberFolders, plural, one {1 priečinok} few {# priečinky} other {# priečinkov}} - {numberAssets, plural, one {1 súbor} few {# súbory} other {# súborov}}",
|
|
91
|
+
"header.content.item-count": "{count, plural, =1 {# položka} other {# položky}}",
|
|
92
|
+
"import-files": "Nahratie súboru",
|
|
93
|
+
"import-from-url": "Nahratie súboru z URL",
|
|
35
94
|
"input.button.label": "Prehliadať súbory",
|
|
36
95
|
"input.label": "Drag & Drop alebo",
|
|
37
96
|
"input.label-bold": "Drag & drop",
|
|
@@ -40,6 +99,8 @@ var sk = {
|
|
|
40
99
|
"input.placeholder.icon": "Pustite súbor v tejto zóne",
|
|
41
100
|
"input.url.description": "Každý URL odkaz zadajte na nový riadok.",
|
|
42
101
|
"input.url.label": "URL",
|
|
102
|
+
"input.url.placeholder": "Prázdne",
|
|
103
|
+
"input.notification.not-supported": "Tento typ súboru nemôžete nahrať, akceptované sú iba nasledujúce typy – {fileTypes}",
|
|
43
104
|
"list.assets.title": "Súbory",
|
|
44
105
|
"list.asset.at.finished": "Načítavanie súbor ukončené.",
|
|
45
106
|
"list.assets-empty.search": "Žiadne výsledky",
|
|
@@ -49,15 +110,20 @@ var sk = {
|
|
|
49
110
|
"list.assets.empty": "Knižnica súborov je prázdna",
|
|
50
111
|
"list.assets.empty-upload": "Nahrajte Vaše prvé súbory...",
|
|
51
112
|
"list.assets.empty.no-permissions": "Nemáte oprávnenie na zobrazenie",
|
|
113
|
+
"list.assets.error": "Počas načítavania súborov sa vyskytla chyba.",
|
|
114
|
+
"list.assets.loading-more": "Načítava sa viac súborov...",
|
|
52
115
|
"list.assets.loading-asset": "Načítavam náhľad pre súbor: {path}",
|
|
53
116
|
"list.assets.not-supported-content": "Náhľad nie je k dispozícii",
|
|
54
117
|
"list.assets.preview-asset": "Náhľad pre video na {path}",
|
|
55
118
|
"list.assets.selected": "{numberFolders, plural, one {# priečinok} few {# priečinky} other {# priečinkov}} - {numberAssets, plural, one {# súbor} few {# súbory} other {# súborov}}",
|
|
119
|
+
"list-assets-select": "Vybrať súbor {name}",
|
|
56
120
|
"list.assets.type-not-allowed": "Tento typ súboru nie je podporovaný.",
|
|
57
121
|
"list.assets.to-upload": "{number, plural, =0 {Žiaden súbor} one {1 súbor pripravený} few {# súbory pripravené} other {# súborov pripravených}} na nahratie",
|
|
58
122
|
"list.folder.edit": "Upraviť priečinok",
|
|
123
|
+
"list.folder.select": "Vybrať priečinok {name}",
|
|
59
124
|
"list.folder.subtitle": "{folderCount, plural, one {# priečinok} few {# priečinky} other {# priečinkov}}, {filesCount, plural, one {# súbor} few {# súbory} other {# súborov}}",
|
|
60
125
|
"list.folders.title": "Priečinky",
|
|
126
|
+
"list.folders.link-label": "Prístup k priečinku",
|
|
61
127
|
"mediaLibraryInput.actions.nextSlide": "Ďalší slide",
|
|
62
128
|
"mediaLibraryInput.actions.previousSlide": "Predošlý slide",
|
|
63
129
|
"mediaLibraryInput.placeholder": "Pre pridanie súboru kliknite sem, alebo potiahnite súbor do tejto zóny",
|
|
@@ -67,6 +133,7 @@ var sk = {
|
|
|
67
133
|
"modal.file-details.extension": "Prípona súboru",
|
|
68
134
|
"modal.file-details.size": "Veľkosť",
|
|
69
135
|
"modal.file-details.id": "ID súboru",
|
|
136
|
+
"modal.file-details.focal-point": "Fokálny bod",
|
|
70
137
|
"modal.folder.elements.count": "{folderCount} priečinkov, {assetCount} súborov",
|
|
71
138
|
"modal.header.browse": "Nahrať súbory",
|
|
72
139
|
"modal.header.file-detail": "Podrobnosti",
|
|
@@ -90,10 +157,20 @@ var sk = {
|
|
|
90
157
|
"plugin.description.long": "Správa súboru.",
|
|
91
158
|
"plugin.description.short": "Správa súboru.",
|
|
92
159
|
"plugin.name": "Knižnica súborov",
|
|
160
|
+
"plugin.home": "Domov",
|
|
93
161
|
"search.clear.label": "Vyčistiť vyhľadávanie",
|
|
94
162
|
"search.label": "Vyhľadávať súbor",
|
|
95
163
|
"search.placeholder": "Vyhľadávať súbor...",
|
|
96
164
|
"settings.blockTitle": "Správa súborov",
|
|
165
|
+
"settings.form.aiMetadata.label": "Generovať AI popisy a alternatívne texty automaticky pri nahrávaní!",
|
|
166
|
+
"settings.form.aiMetadata.description": "Zapnite túto funkciu, aby ste ušetrili čas, optimalizovali SEO a zvýšili prístupnosť tým, že naša AI za vás vygeneruje popisy a alternatívne texty.",
|
|
167
|
+
"settings.form.aiMetadata.allAssetsHaveMetadata": "Všetky súbory majú popis a alternatívny text",
|
|
168
|
+
"settings.form.aiMetadata.imagesWithoutMetadata": "{count, plural, one {# obrázku chýba popis alebo alternatívny text} other {# obrázkom chýba popis alebo alternatívny text}}",
|
|
169
|
+
"settings.form.aiMetadata.generatingMetadata": "AI generuje vaše metadáta",
|
|
170
|
+
"settings.form.aiMetadata.metadataGenerated": "Vaše metadáta boli vygenerované",
|
|
171
|
+
"settings.form.aiMetadata.generateButton": "Generovať metadáta",
|
|
172
|
+
"settings.form.aiMetadata.confirmDialog.title": "Generovať AI metadáta",
|
|
173
|
+
"settings.form.aiMetadata.confirmDialog.message": "Týmto sa na pozadí spustí proces generovania popisov a alternatívnych textov pre {count, plural, one {# obrázok} other {# obrázky}}. AI môže robiť chyby, preto si vygenerovaný obsah nezabudnite skontrolovať.",
|
|
97
174
|
"settings.form.autoOrientation.description": "Automaticky otáčať obrázky podľa EXIF orientation tagu.",
|
|
98
175
|
"settings.form.autoOrientation.label": "Auto-orientácia",
|
|
99
176
|
"settings.form.responsiveDimensions.description": "Automaticky budú vygenerované rôzne veľkosti Vami nahrávaných súborov (large, medium, small)",
|
|
@@ -103,6 +180,7 @@ var sk = {
|
|
|
103
180
|
"settings.form.videoPreview.description": "Automaticky budú vygenerované 6-sekundové ukážky videa (GIF)",
|
|
104
181
|
"settings.form.videoPreview.label": "Ukážka",
|
|
105
182
|
"settings.header.label": "Knižnica súborov",
|
|
183
|
+
"settings.section.audio.label": "Audio",
|
|
106
184
|
"settings.section.doc.label": "Dokument",
|
|
107
185
|
"settings.section.image.label": "Obrázok",
|
|
108
186
|
"settings.section.video.label": "Video",
|
|
@@ -114,9 +192,35 @@ var sk = {
|
|
|
114
192
|
"sort.name_desc": "Abecedne od Z po A",
|
|
115
193
|
"sort.updated_at_asc": "Od najstaršie upravených",
|
|
116
194
|
"sort.updated_at_desc": "Od najnovšie upravených",
|
|
195
|
+
"list.table.header.actions": "akcie",
|
|
196
|
+
"list.table.header.preview": "náhľad",
|
|
197
|
+
"list.table.header.name": "názov",
|
|
198
|
+
"list.table.header.ext": "prípona",
|
|
199
|
+
"list.table.header.size": "veľkosť",
|
|
200
|
+
"list.table.header.createdAt": "vytvorené",
|
|
201
|
+
"list.table.header.updatedAt": "posledná úprava",
|
|
202
|
+
"list.table.header.creationDate": "Dátum vytvorenia",
|
|
203
|
+
"list.table.header.lastModified": "Posledná úprava",
|
|
204
|
+
"list.table.header.sort": "Zoradiť podľa {label}",
|
|
205
|
+
"list.table.content.empty-label": "Toto pole je prázdne",
|
|
117
206
|
"tabs.title": "Ako si prajete nahrať Vaše súbory?",
|
|
118
207
|
"window.confirm.close-modal.file": "Ste si istý? Vaše zmeny budú zahodené.",
|
|
119
|
-
"window.confirm.close-modal.files": "Ste si istý? Existujú súbory, ktoré zatiaľ ešte neboli nahraté."
|
|
208
|
+
"window.confirm.close-modal.files": "Ste si istý? Existujú súbory, ktoré zatiaľ ešte neboli nahraté.",
|
|
209
|
+
"config.back": "Späť",
|
|
210
|
+
"config.subtitle": "Definujte nastavenia zobrazenia knižnice súborov.",
|
|
211
|
+
"config.entries.title": "Počet záznamov na stránku",
|
|
212
|
+
"config.sort.title": "Predvolené poradie zoradenia",
|
|
213
|
+
"config.entries.note": "Počet súborov zobrazených predvolene v Knižnici súborov",
|
|
214
|
+
"config.note": "Poznámka: Túto hodnotu môžete prepísať v knižnici súborov.",
|
|
215
|
+
"config.popUpWarning.warning.updateAllSettings": "Týmto upravíte všetky svoje nastavenia",
|
|
216
|
+
"view-switch.list": "Zobrazenie zoznamu",
|
|
217
|
+
"view-switch.grid": "Zobrazenie mriežky",
|
|
218
|
+
"view.switch.label": "Možnosti zobrazenia",
|
|
219
|
+
"view.table": "Tabuľkové zobrazenie",
|
|
220
|
+
"view.grid": "Mriežkové zobrazenie",
|
|
221
|
+
"ai.modal.uploading.title": "Nahrávanie a spracovanie pomocou AI...",
|
|
222
|
+
"ai.modal.title": "{count, plural, one {# súbor nahratý} other {# súbory nahraté}}, skontrolujte AI vygenerované metadáta",
|
|
223
|
+
"ai.modal.error": "Pre nahraté súbory sa nepodarilo vygenerovať AI metadáta."
|
|
120
224
|
};
|
|
121
225
|
|
|
122
226
|
module.exports = sk;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sk.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sk.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,8 +1,51 @@
|
|
|
1
1
|
var sk = {
|
|
2
2
|
"apiError.FileTooBig": "Nahrávaný súbor prekročil maximálnu povolenú veľkosť.",
|
|
3
|
+
"assets.uploaded": "{number, plural, one {# súbor} other {# súbory}} boli úspešne nahraté",
|
|
4
|
+
"asset-details.title": "Podrobnosti súboru",
|
|
5
|
+
"asset-details.description": "Zobrazuje informácie o súbore a metadáta",
|
|
6
|
+
"asset-details.fileInfo": "Informácie o súbore",
|
|
7
|
+
"asset-details.error": "Nepodarilo sa načítať podrobnosti súboru.",
|
|
8
|
+
"asset-details.videoNotSupported": "Váš prehliadač nepodporuje video tag.",
|
|
9
|
+
"asset-details.size": "Veľkosť",
|
|
10
|
+
"asset-details.dimensions": "Rozmery",
|
|
11
|
+
"asset-details.duration": "Trvanie",
|
|
12
|
+
"asset-details.creationDate": "Dátum vytvorenia",
|
|
13
|
+
"asset-details.lastUpdated": "Naposledy aktualizované",
|
|
14
|
+
"asset-details.createdBy": "Vytvoril",
|
|
15
|
+
"asset-details.extension": "Prípona",
|
|
16
|
+
"asset-details.assetId": "ID súboru",
|
|
17
|
+
"asset-details.fileName": "Názov súboru",
|
|
18
|
+
"asset-details.caption": "Popis",
|
|
19
|
+
"asset-details.alternativeText": "Alternatívny text",
|
|
20
|
+
"asset-details.noPreview": "Náhľad nie je k dispozícii",
|
|
3
21
|
"upload.generic-error": "Počas nahrávania súboru nastala chyba.",
|
|
22
|
+
"upload.progress": "Priebeh nahrávania",
|
|
23
|
+
"upload.progress.description": "Zobrazuje priebeh a stav nahrávania",
|
|
24
|
+
"upload.progress.failed": "Nahrávanie zlyhalo",
|
|
25
|
+
"upload.progress.failed.subtitle": "Skúste prosím súbory nahrať znova",
|
|
26
|
+
"upload.progress.success": "Nahrávanie úspešné!",
|
|
27
|
+
"upload.progress.success.subtitle": "{count, plural, one {# súbor bol úspešne nahratý} other {# súbory boli úspešne nahraté}}",
|
|
28
|
+
"upload.progress.success.subtitle.withErrors": "{successCount} nahratých, {errorCount} zlyhalo",
|
|
29
|
+
"upload.progress.uploading.withCount": "Nahráva sa {total} položiek ({percentage}%)",
|
|
30
|
+
"upload.progress.uploading-files": "Nahráva sa {count, plural, one {# súbor} other {# súbory}}",
|
|
31
|
+
"upload.progress.indicator.in-progress": "Indikátor prebiehajúceho nahrávania",
|
|
32
|
+
"upload.progress.indicator.complete": "Indikátor dokončeného nahrávania",
|
|
33
|
+
"upload.progress.label": "Nahrávanie",
|
|
34
|
+
"upload.progress.errors.title": "Nepodarilo sa nahrať:",
|
|
35
|
+
"upload.progress.cancel": "Zrušiť",
|
|
36
|
+
"upload.progress.canceled": "Nahrávania zrušené",
|
|
37
|
+
"upload.progress.canceled.subtitle": "Niektoré súbory neboli nahraté",
|
|
38
|
+
"upload.progress.canceled.subtitle.all": "Všetky nahrávania boli zrušené",
|
|
39
|
+
"upload.progress.retry": "Skúsiť znova",
|
|
40
|
+
"upload.progress.file.uploading": "Nahráva sa...",
|
|
41
|
+
"upload.progress.file.canceled": "Zrušené",
|
|
42
|
+
"upload.progress.file.uploaded": "Nahraté",
|
|
43
|
+
"upload.progress.maximize": "Maximalizovať",
|
|
44
|
+
"upload.progress.minimize": "Minimalizovať",
|
|
45
|
+
"upload.progress.close": "Zavrieť",
|
|
4
46
|
"bulk.select.label": "Vybrať všetky súbory",
|
|
5
47
|
"button.next": "Ďalej",
|
|
48
|
+
"new": "Nový",
|
|
6
49
|
"checkControl.crop-duplicate": "Duplikovať a orezať prílohu",
|
|
7
50
|
"checkControl.crop-original": "Orezať originál prílohy",
|
|
8
51
|
"content.isLoading": "Obsah sa načítava.",
|
|
@@ -10,26 +53,42 @@ var sk = {
|
|
|
10
53
|
"control-card.cancel": "Zrušiť",
|
|
11
54
|
"control-card.copy-link": "Skopírovať odkaz",
|
|
12
55
|
"control-card.crop": "Orezať",
|
|
56
|
+
"control-card.set-focal-point": "Nastaviť fokálny bod",
|
|
57
|
+
"control-card.stop-focal-point": "Zrušiť výber fokálneho bodu",
|
|
58
|
+
"control-card.reset-focal-point": "Obnoviť na stred",
|
|
59
|
+
"control-card.save-focal-point": "Uložiť fokálny bod",
|
|
13
60
|
"control-card.download": "Stiahnúť",
|
|
14
61
|
"control-card.edit": "Upraviť",
|
|
62
|
+
"control-card.remove-selection": "Odstrániť z výberu",
|
|
15
63
|
"control-card.replace-media": "Nahradiť súbor",
|
|
16
64
|
"control-card.save": "Uložiť",
|
|
17
65
|
"control-card.stop-crop": "Ukončiť orezávanie",
|
|
66
|
+
"dropzone.upload.message": "Pustite sem na nahratie do",
|
|
18
67
|
"filter.add": "Pridať filter",
|
|
19
68
|
"form.button.replace-media": "Nahradiť súbor",
|
|
20
69
|
"form.input.description.file-alt": "Tento text sa ukáže, keď sa súbor nepodarí zobraziť.",
|
|
21
70
|
"form.input.label.file-alt": "Alternatívny text",
|
|
22
71
|
"form.input.label.file-caption": "Popis",
|
|
72
|
+
"form.input.placeholder.file-caption": "Zadajte popis",
|
|
23
73
|
"form.input.label.file-name": "Názov súboru",
|
|
24
74
|
"form.upload-url.error.url.invalid": "Jedna URL adresa je neplatná",
|
|
25
75
|
"form.upload-url.error.url.invalids": "{number} URL adresy/ies sú/je neplatné/ých ",
|
|
26
76
|
"header.actions.add-assets": "Nový súbor",
|
|
27
77
|
"header.actions.add-folder": "Nový priečinok",
|
|
78
|
+
"folder.create.title": "Nový priečinok",
|
|
79
|
+
"folder.form.name.label": "Názov priečinka",
|
|
80
|
+
"folder.create.submit": "Vytvoriť priečinok",
|
|
81
|
+
"folder.create.form.error.name-required": "Názov je povinný",
|
|
82
|
+
"folder.create.form.error.unknown": "Počas vytvárania priečinka sa vyskytla chyba",
|
|
83
|
+
"folder.create.success": "Priečinok bol vytvorený",
|
|
28
84
|
"header.actions.add-assets.folder": "priečinok",
|
|
29
85
|
"header.actions.upload-assets": "Nahrať súbory",
|
|
30
86
|
"header.actions.upload-new-asset": "Nahrať nový súbor",
|
|
31
87
|
"header.content.assets-empty": "Žiadne súbory",
|
|
32
88
|
"header.content.assets": "{numberFolders, plural, one {1 priečinok} few {# priečinky} other {# priečinkov}} - {numberAssets, plural, one {1 súbor} few {# súbory} other {# súborov}}",
|
|
89
|
+
"header.content.item-count": "{count, plural, =1 {# položka} other {# položky}}",
|
|
90
|
+
"import-files": "Nahratie súboru",
|
|
91
|
+
"import-from-url": "Nahratie súboru z URL",
|
|
33
92
|
"input.button.label": "Prehliadať súbory",
|
|
34
93
|
"input.label": "Drag & Drop alebo",
|
|
35
94
|
"input.label-bold": "Drag & drop",
|
|
@@ -38,6 +97,8 @@ var sk = {
|
|
|
38
97
|
"input.placeholder.icon": "Pustite súbor v tejto zóne",
|
|
39
98
|
"input.url.description": "Každý URL odkaz zadajte na nový riadok.",
|
|
40
99
|
"input.url.label": "URL",
|
|
100
|
+
"input.url.placeholder": "Prázdne",
|
|
101
|
+
"input.notification.not-supported": "Tento typ súboru nemôžete nahrať, akceptované sú iba nasledujúce typy – {fileTypes}",
|
|
41
102
|
"list.assets.title": "Súbory",
|
|
42
103
|
"list.asset.at.finished": "Načítavanie súbor ukončené.",
|
|
43
104
|
"list.assets-empty.search": "Žiadne výsledky",
|
|
@@ -47,15 +108,20 @@ var sk = {
|
|
|
47
108
|
"list.assets.empty": "Knižnica súborov je prázdna",
|
|
48
109
|
"list.assets.empty-upload": "Nahrajte Vaše prvé súbory...",
|
|
49
110
|
"list.assets.empty.no-permissions": "Nemáte oprávnenie na zobrazenie",
|
|
111
|
+
"list.assets.error": "Počas načítavania súborov sa vyskytla chyba.",
|
|
112
|
+
"list.assets.loading-more": "Načítava sa viac súborov...",
|
|
50
113
|
"list.assets.loading-asset": "Načítavam náhľad pre súbor: {path}",
|
|
51
114
|
"list.assets.not-supported-content": "Náhľad nie je k dispozícii",
|
|
52
115
|
"list.assets.preview-asset": "Náhľad pre video na {path}",
|
|
53
116
|
"list.assets.selected": "{numberFolders, plural, one {# priečinok} few {# priečinky} other {# priečinkov}} - {numberAssets, plural, one {# súbor} few {# súbory} other {# súborov}}",
|
|
117
|
+
"list-assets-select": "Vybrať súbor {name}",
|
|
54
118
|
"list.assets.type-not-allowed": "Tento typ súboru nie je podporovaný.",
|
|
55
119
|
"list.assets.to-upload": "{number, plural, =0 {Žiaden súbor} one {1 súbor pripravený} few {# súbory pripravené} other {# súborov pripravených}} na nahratie",
|
|
56
120
|
"list.folder.edit": "Upraviť priečinok",
|
|
121
|
+
"list.folder.select": "Vybrať priečinok {name}",
|
|
57
122
|
"list.folder.subtitle": "{folderCount, plural, one {# priečinok} few {# priečinky} other {# priečinkov}}, {filesCount, plural, one {# súbor} few {# súbory} other {# súborov}}",
|
|
58
123
|
"list.folders.title": "Priečinky",
|
|
124
|
+
"list.folders.link-label": "Prístup k priečinku",
|
|
59
125
|
"mediaLibraryInput.actions.nextSlide": "Ďalší slide",
|
|
60
126
|
"mediaLibraryInput.actions.previousSlide": "Predošlý slide",
|
|
61
127
|
"mediaLibraryInput.placeholder": "Pre pridanie súboru kliknite sem, alebo potiahnite súbor do tejto zóny",
|
|
@@ -65,6 +131,7 @@ var sk = {
|
|
|
65
131
|
"modal.file-details.extension": "Prípona súboru",
|
|
66
132
|
"modal.file-details.size": "Veľkosť",
|
|
67
133
|
"modal.file-details.id": "ID súboru",
|
|
134
|
+
"modal.file-details.focal-point": "Fokálny bod",
|
|
68
135
|
"modal.folder.elements.count": "{folderCount} priečinkov, {assetCount} súborov",
|
|
69
136
|
"modal.header.browse": "Nahrať súbory",
|
|
70
137
|
"modal.header.file-detail": "Podrobnosti",
|
|
@@ -88,10 +155,20 @@ var sk = {
|
|
|
88
155
|
"plugin.description.long": "Správa súboru.",
|
|
89
156
|
"plugin.description.short": "Správa súboru.",
|
|
90
157
|
"plugin.name": "Knižnica súborov",
|
|
158
|
+
"plugin.home": "Domov",
|
|
91
159
|
"search.clear.label": "Vyčistiť vyhľadávanie",
|
|
92
160
|
"search.label": "Vyhľadávať súbor",
|
|
93
161
|
"search.placeholder": "Vyhľadávať súbor...",
|
|
94
162
|
"settings.blockTitle": "Správa súborov",
|
|
163
|
+
"settings.form.aiMetadata.label": "Generovať AI popisy a alternatívne texty automaticky pri nahrávaní!",
|
|
164
|
+
"settings.form.aiMetadata.description": "Zapnite túto funkciu, aby ste ušetrili čas, optimalizovali SEO a zvýšili prístupnosť tým, že naša AI za vás vygeneruje popisy a alternatívne texty.",
|
|
165
|
+
"settings.form.aiMetadata.allAssetsHaveMetadata": "Všetky súbory majú popis a alternatívny text",
|
|
166
|
+
"settings.form.aiMetadata.imagesWithoutMetadata": "{count, plural, one {# obrázku chýba popis alebo alternatívny text} other {# obrázkom chýba popis alebo alternatívny text}}",
|
|
167
|
+
"settings.form.aiMetadata.generatingMetadata": "AI generuje vaše metadáta",
|
|
168
|
+
"settings.form.aiMetadata.metadataGenerated": "Vaše metadáta boli vygenerované",
|
|
169
|
+
"settings.form.aiMetadata.generateButton": "Generovať metadáta",
|
|
170
|
+
"settings.form.aiMetadata.confirmDialog.title": "Generovať AI metadáta",
|
|
171
|
+
"settings.form.aiMetadata.confirmDialog.message": "Týmto sa na pozadí spustí proces generovania popisov a alternatívnych textov pre {count, plural, one {# obrázok} other {# obrázky}}. AI môže robiť chyby, preto si vygenerovaný obsah nezabudnite skontrolovať.",
|
|
95
172
|
"settings.form.autoOrientation.description": "Automaticky otáčať obrázky podľa EXIF orientation tagu.",
|
|
96
173
|
"settings.form.autoOrientation.label": "Auto-orientácia",
|
|
97
174
|
"settings.form.responsiveDimensions.description": "Automaticky budú vygenerované rôzne veľkosti Vami nahrávaných súborov (large, medium, small)",
|
|
@@ -101,6 +178,7 @@ var sk = {
|
|
|
101
178
|
"settings.form.videoPreview.description": "Automaticky budú vygenerované 6-sekundové ukážky videa (GIF)",
|
|
102
179
|
"settings.form.videoPreview.label": "Ukážka",
|
|
103
180
|
"settings.header.label": "Knižnica súborov",
|
|
181
|
+
"settings.section.audio.label": "Audio",
|
|
104
182
|
"settings.section.doc.label": "Dokument",
|
|
105
183
|
"settings.section.image.label": "Obrázok",
|
|
106
184
|
"settings.section.video.label": "Video",
|
|
@@ -112,9 +190,35 @@ var sk = {
|
|
|
112
190
|
"sort.name_desc": "Abecedne od Z po A",
|
|
113
191
|
"sort.updated_at_asc": "Od najstaršie upravených",
|
|
114
192
|
"sort.updated_at_desc": "Od najnovšie upravených",
|
|
193
|
+
"list.table.header.actions": "akcie",
|
|
194
|
+
"list.table.header.preview": "náhľad",
|
|
195
|
+
"list.table.header.name": "názov",
|
|
196
|
+
"list.table.header.ext": "prípona",
|
|
197
|
+
"list.table.header.size": "veľkosť",
|
|
198
|
+
"list.table.header.createdAt": "vytvorené",
|
|
199
|
+
"list.table.header.updatedAt": "posledná úprava",
|
|
200
|
+
"list.table.header.creationDate": "Dátum vytvorenia",
|
|
201
|
+
"list.table.header.lastModified": "Posledná úprava",
|
|
202
|
+
"list.table.header.sort": "Zoradiť podľa {label}",
|
|
203
|
+
"list.table.content.empty-label": "Toto pole je prázdne",
|
|
115
204
|
"tabs.title": "Ako si prajete nahrať Vaše súbory?",
|
|
116
205
|
"window.confirm.close-modal.file": "Ste si istý? Vaše zmeny budú zahodené.",
|
|
117
|
-
"window.confirm.close-modal.files": "Ste si istý? Existujú súbory, ktoré zatiaľ ešte neboli nahraté."
|
|
206
|
+
"window.confirm.close-modal.files": "Ste si istý? Existujú súbory, ktoré zatiaľ ešte neboli nahraté.",
|
|
207
|
+
"config.back": "Späť",
|
|
208
|
+
"config.subtitle": "Definujte nastavenia zobrazenia knižnice súborov.",
|
|
209
|
+
"config.entries.title": "Počet záznamov na stránku",
|
|
210
|
+
"config.sort.title": "Predvolené poradie zoradenia",
|
|
211
|
+
"config.entries.note": "Počet súborov zobrazených predvolene v Knižnici súborov",
|
|
212
|
+
"config.note": "Poznámka: Túto hodnotu môžete prepísať v knižnici súborov.",
|
|
213
|
+
"config.popUpWarning.warning.updateAllSettings": "Týmto upravíte všetky svoje nastavenia",
|
|
214
|
+
"view-switch.list": "Zobrazenie zoznamu",
|
|
215
|
+
"view-switch.grid": "Zobrazenie mriežky",
|
|
216
|
+
"view.switch.label": "Možnosti zobrazenia",
|
|
217
|
+
"view.table": "Tabuľkové zobrazenie",
|
|
218
|
+
"view.grid": "Mriežkové zobrazenie",
|
|
219
|
+
"ai.modal.uploading.title": "Nahrávanie a spracovanie pomocou AI...",
|
|
220
|
+
"ai.modal.title": "{count, plural, one {# súbor nahratý} other {# súbory nahraté}}, skontrolujte AI vygenerované metadáta",
|
|
221
|
+
"ai.modal.error": "Pre nahraté súbory sa nepodarilo vygenerovať AI metadáta."
|
|
118
222
|
};
|
|
119
223
|
|
|
120
224
|
export { sk as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sk.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sk.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/server/bootstrap.js
CHANGED
|
@@ -36,9 +36,6 @@ async function bootstrap({ strapi: strapi1 }) {
|
|
|
36
36
|
await registerPermissionActions();
|
|
37
37
|
await registerWebhookEvents();
|
|
38
38
|
await index.getService('weeklyMetrics').registerCron();
|
|
39
|
-
if (strapi1.ai.admin.isEnabled() === true) {
|
|
40
|
-
await index.getService('aiMetadataJobs').registerCron();
|
|
41
|
-
}
|
|
42
39
|
index.getService('metrics').sendUploadPluginMetrics();
|
|
43
40
|
index.getService('extensions').signFileUrlsOnDocumentService();
|
|
44
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { getService } from './utils';\nimport { ALLOWED_SORT_STRINGS, ALLOWED_WEBHOOK_EVENTS } from './constants';\n\nexport async function bootstrap({ strapi }: { strapi: Core.Strapi }) {\n const defaultConfig = {\n settings: {\n sizeOptimization: true,\n responsiveDimensions: true,\n autoOrientation: false,\n aiMetadata: true,\n },\n view_configuration: {\n pageSize: 10,\n sort: ALLOWED_SORT_STRINGS[0],\n },\n };\n\n for (const [key, defaultValue] of Object.entries(defaultConfig)) {\n // set plugin store\n const configurator = strapi.store!({ type: 'plugin', name: 'upload', key });\n\n const config = await configurator.get({});\n if (\n config &&\n Object.keys(defaultValue).every((key) => Object.prototype.hasOwnProperty.call(config, key))\n ) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n // if the config does not exist or does not have all the required keys\n // set from the defaultValue ensuring all required settings are present\n await configurator.set({\n value: Object.assign(defaultValue, config || {}),\n });\n }\n\n await registerPermissionActions();\n await registerWebhookEvents();\n\n await getService('weeklyMetrics').registerCron();\n
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { getService } from './utils';\nimport { ALLOWED_SORT_STRINGS, ALLOWED_WEBHOOK_EVENTS } from './constants';\n\nexport async function bootstrap({ strapi }: { strapi: Core.Strapi }) {\n const defaultConfig = {\n settings: {\n sizeOptimization: true,\n responsiveDimensions: true,\n autoOrientation: false,\n aiMetadata: true,\n },\n view_configuration: {\n pageSize: 10,\n sort: ALLOWED_SORT_STRINGS[0],\n },\n };\n\n for (const [key, defaultValue] of Object.entries(defaultConfig)) {\n // set plugin store\n const configurator = strapi.store!({ type: 'plugin', name: 'upload', key });\n\n const config = await configurator.get({});\n if (\n config &&\n Object.keys(defaultValue).every((key) => Object.prototype.hasOwnProperty.call(config, key))\n ) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n // if the config does not exist or does not have all the required keys\n // set from the defaultValue ensuring all required settings are present\n await configurator.set({\n value: Object.assign(defaultValue, config || {}),\n });\n }\n\n await registerPermissionActions();\n await registerWebhookEvents();\n\n await getService('weeklyMetrics').registerCron();\n\n getService('metrics').sendUploadPluginMetrics();\n\n getService('extensions').signFileUrlsOnDocumentService();\n}\n\nconst registerWebhookEvents = async () =>\n Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {\n strapi.get('webhookStore').addAllowedEvent(key, value);\n });\n\nconst registerPermissionActions = async () => {\n const actions = [\n {\n section: 'plugins',\n displayName: 'Access the Media Library',\n uid: 'read',\n pluginName: 'upload',\n },\n {\n section: 'plugins',\n displayName: 'Create (upload)',\n uid: 'assets.create',\n subCategory: 'assets',\n pluginName: 'upload',\n },\n {\n section: 'plugins',\n displayName: 'Update (crop, details, replace) + delete',\n uid: 'assets.update',\n subCategory: 'assets',\n pluginName: 'upload',\n },\n {\n section: 'plugins',\n displayName: 'Download',\n uid: 'assets.download',\n subCategory: 'assets',\n pluginName: 'upload',\n },\n {\n section: 'plugins',\n displayName: 'Copy link',\n uid: 'assets.copy-link',\n subCategory: 'assets',\n pluginName: 'upload',\n },\n {\n section: 'plugins',\n displayName: 'Configure view',\n uid: 'configure-view',\n pluginName: 'upload',\n },\n {\n section: 'settings',\n displayName: 'Access the Media Library settings page',\n uid: 'settings.read',\n category: 'media library',\n pluginName: 'upload',\n },\n ];\n\n await strapi.service('admin::permission').actionProvider.registerMany(actions);\n};\n"],"names":["bootstrap","strapi","defaultConfig","settings","sizeOptimization","responsiveDimensions","autoOrientation","aiMetadata","view_configuration","pageSize","sort","ALLOWED_SORT_STRINGS","key","defaultValue","Object","entries","configurator","store","type","name","config","get","keys","every","prototype","hasOwnProperty","call","set","value","assign","registerPermissionActions","registerWebhookEvents","getService","registerCron","sendUploadPluginMetrics","signFileUrlsOnDocumentService","ALLOWED_WEBHOOK_EVENTS","forEach","addAllowedEvent","actions","section","displayName","uid","pluginName","subCategory","category","service","actionProvider","registerMany"],"mappings":"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"}
|
|
@@ -34,9 +34,6 @@ async function bootstrap({ strapi: strapi1 }) {
|
|
|
34
34
|
await registerPermissionActions();
|
|
35
35
|
await registerWebhookEvents();
|
|
36
36
|
await getService('weeklyMetrics').registerCron();
|
|
37
|
-
if (strapi1.ai.admin.isEnabled() === true) {
|
|
38
|
-
await getService('aiMetadataJobs').registerCron();
|
|
39
|
-
}
|
|
40
37
|
getService('metrics').sendUploadPluginMetrics();
|
|
41
38
|
getService('extensions').signFileUrlsOnDocumentService();
|
|
42
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.mjs","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { getService } from './utils';\nimport { ALLOWED_SORT_STRINGS, ALLOWED_WEBHOOK_EVENTS } from './constants';\n\nexport async function bootstrap({ strapi }: { strapi: Core.Strapi }) {\n const defaultConfig = {\n settings: {\n sizeOptimization: true,\n responsiveDimensions: true,\n autoOrientation: false,\n aiMetadata: true,\n },\n view_configuration: {\n pageSize: 10,\n sort: ALLOWED_SORT_STRINGS[0],\n },\n };\n\n for (const [key, defaultValue] of Object.entries(defaultConfig)) {\n // set plugin store\n const configurator = strapi.store!({ type: 'plugin', name: 'upload', key });\n\n const config = await configurator.get({});\n if (\n config &&\n Object.keys(defaultValue).every((key) => Object.prototype.hasOwnProperty.call(config, key))\n ) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n // if the config does not exist or does not have all the required keys\n // set from the defaultValue ensuring all required settings are present\n await configurator.set({\n value: Object.assign(defaultValue, config || {}),\n });\n }\n\n await registerPermissionActions();\n await registerWebhookEvents();\n\n await getService('weeklyMetrics').registerCron();\n
|
|
1
|
+
{"version":3,"file":"bootstrap.mjs","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { getService } from './utils';\nimport { ALLOWED_SORT_STRINGS, ALLOWED_WEBHOOK_EVENTS } from './constants';\n\nexport async function bootstrap({ strapi }: { strapi: Core.Strapi }) {\n const defaultConfig = {\n settings: {\n sizeOptimization: true,\n responsiveDimensions: true,\n autoOrientation: false,\n aiMetadata: true,\n },\n view_configuration: {\n pageSize: 10,\n sort: ALLOWED_SORT_STRINGS[0],\n },\n };\n\n for (const [key, defaultValue] of Object.entries(defaultConfig)) {\n // set plugin store\n const configurator = strapi.store!({ type: 'plugin', name: 'upload', key });\n\n const config = await configurator.get({});\n if (\n config &&\n Object.keys(defaultValue).every((key) => Object.prototype.hasOwnProperty.call(config, key))\n ) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n // if the config does not exist or does not have all the required keys\n // set from the defaultValue ensuring all required settings are present\n await configurator.set({\n value: Object.assign(defaultValue, config || {}),\n });\n }\n\n await registerPermissionActions();\n await registerWebhookEvents();\n\n await getService('weeklyMetrics').registerCron();\n\n getService('metrics').sendUploadPluginMetrics();\n\n getService('extensions').signFileUrlsOnDocumentService();\n}\n\nconst registerWebhookEvents = async () =>\n Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {\n strapi.get('webhookStore').addAllowedEvent(key, value);\n });\n\nconst registerPermissionActions = async () => {\n const actions = [\n {\n section: 'plugins',\n displayName: 'Access the Media Library',\n uid: 'read',\n pluginName: 'upload',\n },\n {\n section: 'plugins',\n displayName: 'Create (upload)',\n uid: 'assets.create',\n subCategory: 'assets',\n pluginName: 'upload',\n },\n {\n section: 'plugins',\n displayName: 'Update (crop, details, replace) + delete',\n uid: 'assets.update',\n subCategory: 'assets',\n pluginName: 'upload',\n },\n {\n section: 'plugins',\n displayName: 'Download',\n uid: 'assets.download',\n subCategory: 'assets',\n pluginName: 'upload',\n },\n {\n section: 'plugins',\n displayName: 'Copy link',\n uid: 'assets.copy-link',\n subCategory: 'assets',\n pluginName: 'upload',\n },\n {\n section: 'plugins',\n displayName: 'Configure view',\n uid: 'configure-view',\n pluginName: 'upload',\n },\n {\n section: 'settings',\n displayName: 'Access the Media Library settings page',\n uid: 'settings.read',\n category: 'media library',\n pluginName: 'upload',\n },\n ];\n\n await strapi.service('admin::permission').actionProvider.registerMany(actions);\n};\n"],"names":["bootstrap","strapi","defaultConfig","settings","sizeOptimization","responsiveDimensions","autoOrientation","aiMetadata","view_configuration","pageSize","sort","ALLOWED_SORT_STRINGS","key","defaultValue","Object","entries","configurator","store","type","name","config","get","keys","every","prototype","hasOwnProperty","call","set","value","assign","registerPermissionActions","registerWebhookEvents","getService","registerCron","sendUploadPluginMetrics","signFileUrlsOnDocumentService","ALLOWED_WEBHOOK_EVENTS","forEach","addAllowedEvent","actions","section","displayName","uid","pluginName","subCategory","category","service","actionProvider","registerMany"],"mappings":"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"}
|
|
@@ -42,29 +42,6 @@ const createAIMetadataJobsService = ({ strapi })=>({
|
|
|
42
42
|
createdAt: 'desc'
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
|
-
},
|
|
46
|
-
async registerCron () {
|
|
47
|
-
strapi.cron.add({
|
|
48
|
-
aiMetadataJobsCleanup: {
|
|
49
|
-
async task () {
|
|
50
|
-
try {
|
|
51
|
-
const result = await strapi.db.query(aiMetadataJob.AI_METADATA_JOB_UID).deleteMany({
|
|
52
|
-
where: {
|
|
53
|
-
status: {
|
|
54
|
-
$ne: 'processing'
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
if (result.count > 0) {
|
|
59
|
-
strapi.log.info(`Cleaned up ${result.count} old AI metadata jobs`);
|
|
60
|
-
}
|
|
61
|
-
} catch (error) {
|
|
62
|
-
strapi.log.error('Failed to cleanup AI metadata jobs:', error);
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
options: '0 0 * * *'
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
45
|
}
|
|
69
46
|
});
|
|
70
47
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-metadata-jobs.js","sources":["../../../server/src/services/ai-metadata-jobs.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { AIMetadataJob } from '../../../shared/contracts/ai-metadata-jobs';\nimport { AI_METADATA_JOB_UID } from '../models/ai-metadata-job';\n\nexport const createAIMetadataJobsService = ({ strapi }: { strapi: Core.Strapi }) => ({\n async createJob(): Promise<number> {\n const job = await strapi.db.query(AI_METADATA_JOB_UID).create({\n data: {\n status: 'processing',\n createdAt: new Date(),\n },\n });\n\n return job.id;\n },\n\n async getJob(jobId: number): Promise<AIMetadataJob | null> {\n return strapi.db.query(AI_METADATA_JOB_UID).findOne({\n where: { id: jobId },\n });\n },\n\n async updateJob(\n jobId: number,\n updates: Partial<Omit<AIMetadataJob, 'id' | 'createdAt'>>\n ): Promise<void> {\n await strapi.db.query(AI_METADATA_JOB_UID).update({\n where: { id: jobId },\n data: updates,\n });\n },\n\n async deleteJob(jobId: number): Promise<void> {\n await strapi.db.query(AI_METADATA_JOB_UID).delete({\n where: { id: jobId },\n });\n },\n\n async getLatestActiveJob(): Promise<AIMetadataJob | null> {\n // Return the most recent job, regardless of status\n // This allows the frontend to see completed/failed status\n return strapi.db.query(AI_METADATA_JOB_UID).findOne({\n orderBy: { createdAt: 'desc' },\n });\n },\n
|
|
1
|
+
{"version":3,"file":"ai-metadata-jobs.js","sources":["../../../server/src/services/ai-metadata-jobs.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { AIMetadataJob } from '../../../shared/contracts/ai-metadata-jobs';\nimport { AI_METADATA_JOB_UID } from '../models/ai-metadata-job';\n\nexport const createAIMetadataJobsService = ({ strapi }: { strapi: Core.Strapi }) => ({\n async createJob(): Promise<number> {\n const job = await strapi.db.query(AI_METADATA_JOB_UID).create({\n data: {\n status: 'processing',\n createdAt: new Date(),\n },\n });\n\n return job.id;\n },\n\n async getJob(jobId: number): Promise<AIMetadataJob | null> {\n return strapi.db.query(AI_METADATA_JOB_UID).findOne({\n where: { id: jobId },\n });\n },\n\n async updateJob(\n jobId: number,\n updates: Partial<Omit<AIMetadataJob, 'id' | 'createdAt'>>\n ): Promise<void> {\n await strapi.db.query(AI_METADATA_JOB_UID).update({\n where: { id: jobId },\n data: updates,\n });\n },\n\n async deleteJob(jobId: number): Promise<void> {\n await strapi.db.query(AI_METADATA_JOB_UID).delete({\n where: { id: jobId },\n });\n },\n\n async getLatestActiveJob(): Promise<AIMetadataJob | null> {\n // Return the most recent job, regardless of status\n // This allows the frontend to see completed/failed status\n return strapi.db.query(AI_METADATA_JOB_UID).findOne({\n orderBy: { createdAt: 'desc' },\n });\n },\n});\n\nexport type { AIMetadataJob };\n"],"names":["createAIMetadataJobsService","strapi","createJob","job","db","query","AI_METADATA_JOB_UID","create","data","status","createdAt","Date","id","getJob","jobId","findOne","where","updateJob","updates","update","deleteJob","delete","getLatestActiveJob","orderBy"],"mappings":";;;;MAKaA,2BAAAA,GAA8B,CAAC,EAAEC,MAAM,EAA2B,IAAM;QACnF,MAAMC,SAAAA,CAAAA,GAAAA;YACJ,MAAMC,GAAAA,GAAM,MAAMF,MAAAA,CAAOG,EAAE,CAACC,KAAK,CAACC,iCAAAA,CAAAA,CAAqBC,MAAM,CAAC;gBAC5DC,IAAAA,EAAM;oBACJC,MAAAA,EAAQ,YAAA;AACRC,oBAAAA,SAAAA,EAAW,IAAIC,IAAAA;AACjB;AACF,aAAA,CAAA;AAEA,YAAA,OAAOR,IAAIS,EAAE;AACf,QAAA,CAAA;AAEA,QAAA,MAAMC,QAAOC,KAAa,EAAA;AACxB,YAAA,OAAOb,OAAOG,EAAE,CAACC,KAAK,CAACC,iCAAAA,CAAAA,CAAqBS,OAAO,CAAC;gBAClDC,KAAAA,EAAO;oBAAEJ,EAAAA,EAAIE;AAAM;AACrB,aAAA,CAAA;AACF,QAAA,CAAA;QAEA,MAAMG,SAAAA,CAAAA,CACJH,KAAa,EACbI,OAAyD,EAAA;AAEzD,YAAA,MAAMjB,OAAOG,EAAE,CAACC,KAAK,CAACC,iCAAAA,CAAAA,CAAqBa,MAAM,CAAC;gBAChDH,KAAAA,EAAO;oBAAEJ,EAAAA,EAAIE;AAAM,iBAAA;gBACnBN,IAAAA,EAAMU;AACR,aAAA,CAAA;AACF,QAAA,CAAA;AAEA,QAAA,MAAME,WAAUN,KAAa,EAAA;AAC3B,YAAA,MAAMb,OAAOG,EAAE,CAACC,KAAK,CAACC,iCAAAA,CAAAA,CAAqBe,MAAM,CAAC;gBAChDL,KAAAA,EAAO;oBAAEJ,EAAAA,EAAIE;AAAM;AACrB,aAAA,CAAA;AACF,QAAA,CAAA;QAEA,MAAMQ,kBAAAA,CAAAA,GAAAA;;;AAGJ,YAAA,OAAOrB,OAAOG,EAAE,CAACC,KAAK,CAACC,iCAAAA,CAAAA,CAAqBS,OAAO,CAAC;gBAClDQ,OAAAA,EAAS;oBAAEb,SAAAA,EAAW;AAAO;AAC/B,aAAA,CAAA;AACF,QAAA;AACF,KAAA;;;;"}
|