@@ -224,34 +224,37 @@ public function ajaxMetaGenerateAction(ServerRequestInterface $request): Respons
224224 }
225225
226226 protected function ajaxData (ServerRequestInterface $ request ): ResponseInterface
227- {
228- $ parsedBody = $ request ->getParsedBody ();
229- $ queryParams = $ request ->getQueryParams ();
227+ {
228+ $ parsedBody = $ request ->getParsedBody ();
229+ $ queryParams = $ request ->getQueryParams ();
230230
231- $ fileObjects = $ this ->getFileObjectFromRequestTarget ($ request );
231+ $ fileObjects = $ this ->getFileObjectFromRequestTarget ($ request );
232232
233- $ allPrompts = $ this ->promptRepository ->findAll ();
234- $ defaultPrompt = $ this ->promptRepository ->getDefaultPromptText ();
235- $ imageLabels = $ this ->imagelabelRepository ->findAll ();
236- $ defaultLabel = $ this ->imagelabelRepository ->getDefaultImageLabelId ();
237- $ badwords = $ this ->badwordsRepository ->findAll ();
238- $ siteLanguages = $ this ->getAllSiteLanguages ();
233+ $ allPrompts = $ this ->promptRepository ->findAll ();
239234
240- $ modal = $ parsedBody ['modal ' ] ?? $ queryParams ['modal ' ] ?? false ;
241- $ target_language = $ parsedBody ['target-language ' ] ?? $ queryParams ['target-language ' ] ?? null ;
235+ $ defaultPrompt = $ this ->promptRepository ->getDefaultPromptText ();
242236
243- if ( is_null ( $ target_language )) {
244- throw new Exception ( " No target language " , 1727169730 );
245- }
237+ $ imageLabels = $ this -> imagelabelRepository -> findAll ();
238+
239+ $ defaultLabel = $ this -> imagelabelRepository -> getDefaultImageLabelId ();
246240
247- $ targetLanguage = $ this ->getLanguageById ((int ) $ target_language );
248- $ targetTwoLetterIsoCode = $ this ->getLocaleLanguageCode ($ targetLanguage );
241+ $ badwords = $ this ->badwordsRepository ->findAll ();
249242
250- // Setting target, which must be a file reference to a file within the mounts.
251- $ action = $ parsedBody ['action ' ] ?? $ queryParams ['action ' ] ?? '' ;
252- $ target = $ parsedBody ['target ' ] ?? $ queryParams ['target ' ] ?? '' ;
243+ $ siteLanguages = $ this ->getAllSiteLanguages ();
253244
254- switch ($ action ) {
245+ $ modal = $ parsedBody ['modal ' ] ?? $ queryParams ['modal ' ] ?? false ;
246+
247+ $ target_language = $ parsedBody ['target-language ' ] ?? $ queryParams ['target-language ' ] ?? null ;
248+ if (is_null ($ target_language )) {
249+ throw new Exception ("No target language " , 1727169730 );
250+ }
251+ $ targetLanguage = $ this ->getLanguageById ((int ) $ target_language );
252+ $ targetTwoLetterIsoCode = $ this ->getLocaleLanguageCode ($ targetLanguage );
253+
254+ // Setting target, which must be a file reference to a file within the mounts.
255+ $ action = $ parsedBody ['action ' ] ?? $ queryParams ['action ' ] ?? '' ;
256+ $ target = $ parsedBody ['target ' ] ?? $ queryParams ['target ' ] ?? '' ;
257+ switch ($ action ) {
255258 case 'saveMetaData ' :
256259 $ altText = $ parsedBody ['altText ' ] ?? $ queryParams ['altText ' ] ?? '' ;
257260 $ doTranslate = $ parsedBody ['translate ' ] ?? $ queryParams ['translate ' ] ?? false ;
@@ -263,26 +266,14 @@ protected function ajaxData(ServerRequestInterface $request): ResponseInterface
263266 foreach ($ siteLanguages as $ siteLanguage ) {
264267 // only translate additional languages (skip current language)
265268 if ($ siteLanguage ->getLanguageId () !== (int ) $ target_language ) {
266- $ altTextTranslated = $ this ->translationService ->translateText (
267- $ altText ,
268- $ targetTwoLetterIsoCode ,
269- $ this ->getLocaleLanguageCode ($ siteLanguage )
270- );
271- $ metaDataUid = $ this ->imageMetaDataService ->saveMetaData (
272- $ target ,
273- $ altTextTranslated ,
274- $ siteLanguage ->getLanguageId (),
275- $ parentUid
276- );
269+ $ altTextTranslated = $ this ->translationService ->translateText ($ altText , $ targetTwoLetterIsoCode , $ this ->getLocaleLanguageCode ($ siteLanguage ));
270+ $ metaDataUid = $ this ->imageMetaDataService ->saveMetaData ($ target , $ altTextTranslated , $ siteLanguage ->getLanguageId (), $ parentUid );
277271 $ translations [] = [
278272 'languageId ' => $ siteLanguage ->getLanguageId (),
279273 'title ' => $ siteLanguage ->getTitle (),
280- 'flagHtml ' => $ this ->getLanguageFlagHtml (
281- $ siteLanguage ->getFlagIdentifier (),
282- $ siteLanguage ->getTitle ()
283- ),
274+ 'flagHtml ' => $ this ->getLanguageFlagHtml ($ siteLanguage ->getFlagIdentifier (), $ siteLanguage ->getTitle ()),
284275 'altTextTranslated ' => $ altTextTranslated ,
285- 'editLink ' => (string ) $ this ->getFileMetaDataEditLink ($ metaDataUid ),
276+ 'editLink ' => (string )$ this ->getFileMetaDataEditLink ($ metaDataUid ),
286277 ];
287278 }
288279 }
@@ -296,15 +287,15 @@ protected function ajaxData(ServerRequestInterface $request): ResponseInterface
296287 return $ this ->responseFactory ->createResponse ()
297288 ->withHeader ('Content-Type ' , 'application/json ' )
298289 ->withBody ($ this ->streamFactory ->createStream (json_encode ($ returnArray )));
299-
300290 case 'generateMetaData ' :
301- $ textPrompt = $ parsedBody ['textPrompt ' ] ?? $ queryParams ['textPrompt ' ] ?: ($ defaultPrompt ?? '' );
302- $ selectedimageLabel = $ parsedBody ['imageLabel ' ] ?? $ queryParams ['imageLabel ' ] ?: ($ defaultLabel ?? -1 );
303- $ selectedimageLabel = $ selectedimageLabel !== "undefined " ? $ selectedimageLabel : $ defaultLabel ;
291+ $ textPrompt = $ parsedBody ['textPrompt ' ] ?? $ queryParams ['textPrompt ' ] ?: ($ defaultPrompt != null ? $ defaultPrompt : '' );
292+ $ selectedimageLabel = $ parsedBody ['imageLabel ' ] ?? $ queryParams ['imageLabel ' ] ?: ($ defaultLabel != null ? $ defaultLabel : -1 );
293+ $ selectedimageLabel = $ selectedimageLabel != "undefined " ? $ selectedimageLabel : $ defaultLabel ;
304294 $ badwords = $ parsedBody ['badwords ' ] ?? $ queryParams ['badwords ' ] ?: "" ;
305- $ badwords = $ badwords !== "undefined " ? $ badwords : "" ;
306-
307- $ supportsTranslation = false ;
295+ $ badwords = $ badwords != "undefined " ? $ badwords : "" ;
296+
297+
298+ $ supportsTranslation = false ; //d asd sad sadsa das dasd sad asd
308299 if ($ this ->imageMetaDataService ->supportsTranslation ()) {
309300 $ altTextFromImageTranslated = $ this ->imageMetaDataService ->generateImageDescription (
310301 $ fileObjects [0 ]['file ' ],
@@ -355,18 +346,30 @@ protected function ajaxData(ServerRequestInterface $request): ResponseInterface
355346 'badwords ' => $ badwords ,
356347 ];
357348
349+ $ pageRenderer = GeneralUtility::makeInstance (PageRenderer::class);
350+ $ typo3Version = new Typo3Version ();
351+ if ($ typo3Version ->getMajorVersion () > 11 ) {
352+ $ pageRenderer ->loadJavaScriptModule ( // @phpstan-ignore-line
353+ '@pagemachine/ai-tools/AjaxMetaGenerate.js ' ,
354+ );
355+ } else {
356+ $ pageRenderer ->loadRequireJsModule ( // @phpstan-ignore-line
357+ 'TYPO3/CMS/AiTools/Amd/AjaxMetaGenerate '
358+ );
359+ }
360+
361+
358362 if (version_compare (GeneralUtility::makeInstance (VersionNumberUtility::class)->getNumericTypo3Version (), '13.0 ' , '< ' )) {
359363 $ view = $ this ->getView ('AjaxMetaGenerate ' , $ request );
360364 $ view ->assignMultiple ($ template_variables );
361- $ moduleTemplate ->setContent ($ view ->render ());
362- return $ this ->htmlResponse ($ moduleTemplate ->renderContent ());
365+ $ moduleTemplate ->setContent ($ view ->render ()); // @phpstan-ignore-line
366+ return $ this ->htmlResponse ($ moduleTemplate ->renderContent ()); // @phpstan-ignore-line
363367 } else {
364- $ moduleTemplate ->assignMultiple ($ template_variables );
365- return $ moduleTemplate ->renderResponse ('Backend/ImageRecognize/AjaxMetaGenerate ' );
368+ $ moduleTemplate ->assignMultiple ($ template_variables ); // @phpstan-ignore-line
369+ return $ moduleTemplate ->renderResponse ('Backend/ImageRecognize/AjaxMetaGenerate ' ); // @phpstan-ignore-line
366370 }
371+ }
367372 }
368- }
369-
370373
371374 protected function addMetaToFile ($ fileObject , $ languages ): array
372375 {
0 commit comments