@@ -255,119 +255,119 @@ protected function ajaxData(ServerRequestInterface $request): ResponseInterface
255255 $ action = $ parsedBody ['action ' ] ?? $ queryParams ['action ' ] ?? '' ;
256256 $ target = $ parsedBody ['target ' ] ?? $ queryParams ['target ' ] ?? '' ;
257257 switch ($ action ) {
258- case 'saveMetaData ' :
259- $ altText = $ parsedBody ['altText ' ] ?? $ queryParams ['altText ' ] ?? '' ;
260- $ doTranslate = $ parsedBody ['translate ' ] ?? $ queryParams ['translate ' ] ?? false ;
261- $ parentUid = $ this ->imageMetaDataService ->saveMetaData ($ target , $ altText , (int ) $ target_language );
262-
263- $ translations = [];
264- if ($ doTranslate ) {
265- // fetch all site languages and translate the altText
266- foreach ($ siteLanguages as $ siteLanguage ) {
267- // only translate additional languages (skip current language)
268- if ($ siteLanguage ->getLanguageId () !== (int ) $ target_language ) {
269- $ altTextTranslated = $ this ->translationService ->translateText ($ altText , $ targetTwoLetterIsoCode , $ this ->getLocaleLanguageCode ($ siteLanguage ));
270- $ metaDataUid = $ this ->imageMetaDataService ->saveMetaData ($ target , $ altTextTranslated , $ siteLanguage ->getLanguageId (), $ parentUid );
271- $ translations [] = [
272- 'languageId ' => $ siteLanguage ->getLanguageId (),
273- 'title ' => $ siteLanguage ->getTitle (),
274- 'flagHtml ' => $ this ->getLanguageFlagHtml ($ siteLanguage ->getFlagIdentifier (), $ siteLanguage ->getTitle ()),
275- 'altTextTranslated ' => $ altTextTranslated ,
276- 'editLink ' => (string )$ this ->getFileMetaDataEditLink ($ metaDataUid ),
277- ];
258+ case 'saveMetaData ' :
259+ $ altText = $ parsedBody ['altText ' ] ?? $ queryParams ['altText ' ] ?? '' ;
260+ $ doTranslate = $ parsedBody ['translate ' ] ?? $ queryParams ['translate ' ] ?? false ;
261+ $ parentUid = $ this ->imageMetaDataService ->saveMetaData ($ target , $ altText , (int ) $ target_language );
262+
263+ $ translations = [];
264+ if ($ doTranslate ) {
265+ // fetch all site languages and translate the altText
266+ foreach ($ siteLanguages as $ siteLanguage ) {
267+ // only translate additional languages (skip current language)
268+ if ($ siteLanguage ->getLanguageId () !== (int ) $ target_language ) {
269+ $ altTextTranslated = $ this ->translationService ->translateText ($ altText , $ targetTwoLetterIsoCode , $ this ->getLocaleLanguageCode ($ siteLanguage ));
270+ $ metaDataUid = $ this ->imageMetaDataService ->saveMetaData ($ target , $ altTextTranslated , $ siteLanguage ->getLanguageId (), $ parentUid );
271+ $ translations [] = [
272+ 'languageId ' => $ siteLanguage ->getLanguageId (),
273+ 'title ' => $ siteLanguage ->getTitle (),
274+ 'flagHtml ' => $ this ->getLanguageFlagHtml ($ siteLanguage ->getFlagIdentifier (), $ siteLanguage ->getTitle ()),
275+ 'altTextTranslated ' => $ altTextTranslated ,
276+ 'editLink ' => (string )$ this ->getFileMetaDataEditLink ($ metaDataUid ),
277+ ];
278+ }
278279 }
279280 }
280- }
281281
282- $ returnArray = [
283- 'translations ' => $ translations ,
284- 'saved ' => true ,
285- ];
286-
287- return $ this ->responseFactory ->createResponse ()
288- ->withHeader ('Content-Type ' , 'application/json ' )
289- ->withBody ($ this ->streamFactory ->createStream (json_encode ($ returnArray )));
290- case 'generateMetaData ' :
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 ;
294- $ badwords = $ parsedBody ['badwords ' ] ?? $ queryParams ['badwords ' ] ?: "" ;
295- $ badwords = $ badwords != "undefined " ? $ badwords : "" ;
296-
297-
298- $ supportsTranslation = false ; //d asd sad sadsa das dasd sad asd
299- if ($ this ->imageMetaDataService ->supportsTranslation ()) {
300- $ altTextFromImageTranslated = $ this ->imageMetaDataService ->generateImageDescription (
301- $ fileObjects [0 ]['file ' ],
302- $ textPrompt ,
303- $ badwords ,
304- $ targetTwoLetterIsoCode
305- );
306- $ data = ['alternative ' => $ altTextFromImageTranslated , 'baseAlternative ' => $ altTextFromImageTranslated ];
307- } else {
308- $ altTextFromImage = $ this ->imageMetaDataService ->generateImageDescription (
309- $ fileObjects [0 ]['file ' ],
310- $ textPrompt ,
311- $ badwords ,
312- 'en '
313- );
314- $ altText = $ this ->translationService ->translateText ($ altTextFromImage , 'en ' , $ targetTwoLetterIsoCode );
315- $ data = ['alternative ' => $ altText , 'baseAlternative ' => $ altTextFromImage ];
316- }
282+ $ returnArray = [
283+ 'translations ' => $ translations ,
284+ 'saved ' => true ,
285+ ];
317286
318- return $ this ->responseFactory ->createResponse ()
319- ->withHeader ('Content-Type ' , 'application/json ' )
320- ->withBody ($ this ->streamFactory ->createStream (json_encode ($ data )));
321-
322- default :
323- if (version_compare (GeneralUtility::makeInstance (VersionNumberUtility::class)->getNumericTypo3Version (), '13.0 ' , '< ' )) {
324- $ moduleTemplate = $ this ->moduleTemplateFactory ->create ($ request );
325- $ view = $ this ->getView ('AjaxMetaGenerate ' , $ request );
326- } else {
327- $ attribute = new ExtbaseRequestParameters (ImageRecognizeController::class);
328- $ request = $ request ->withAttribute ('extbase ' , $ attribute );
329- $ extbaseRequest = GeneralUtility::makeInstance (Request::class, $ request );
330- $ moduleTemplate = $ this ->moduleTemplateFactory ->create ($ extbaseRequest );
331- }
287+ return $ this ->responseFactory ->createResponse ()
288+ ->withHeader ('Content-Type ' , 'application/json ' )
289+ ->withBody ($ this ->streamFactory ->createStream (json_encode ($ returnArray )));
290+ case 'generateMetaData ' :
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 ;
294+ $ badwords = $ parsedBody ['badwords ' ] ?? $ queryParams ['badwords ' ] ?: "" ;
295+ $ badwords = $ badwords != "undefined " ? $ badwords : "" ;
296+
297+
298+ $ supportsTranslation = false ; //d asd sad sadsa das dasd sad asd
299+ if ($ this ->imageMetaDataService ->supportsTranslation ()) {
300+ $ altTextFromImageTranslated = $ this ->imageMetaDataService ->generateImageDescription (
301+ $ fileObjects [0 ]['file ' ],
302+ $ textPrompt ,
303+ $ badwords ,
304+ $ targetTwoLetterIsoCode
305+ );
306+ $ data = ['alternative ' => $ altTextFromImageTranslated , 'baseAlternative ' => $ altTextFromImageTranslated ];
307+ } else {
308+ $ altTextFromImage = $ this ->imageMetaDataService ->generateImageDescription (
309+ $ fileObjects [0 ]['file ' ],
310+ $ textPrompt ,
311+ $ badwords ,
312+ 'en '
313+ );
314+ $ altText = $ this ->translationService ->translateText ($ altTextFromImage , 'en ' , $ targetTwoLetterIsoCode );
315+ $ data = ['alternative ' => $ altText , 'baseAlternative ' => $ altTextFromImage ];
316+ }
332317
333- $ moduleTemplate ->getDocHeaderComponent ()->disable ();
334-
335- $ template_variables = [
336- 'siteLanguages ' => $ siteLanguages ,
337- 'action ' => $ action ,
338- 'target ' => $ target ,
339- 'fileObjects ' => $ fileObjects ?? null ,
340- 'targetLanguage ' => (int ) $ target_language ,
341- 'modal ' => $ modal ,
342- 'textPrompt ' => $ defaultPrompt ,
343- 'allTextPrompts ' => $ allPrompts ,
344- 'imageLabels ' => $ imageLabels ,
345- 'selectedimageLabel ' => $ defaultLabel ,
346- 'badwords ' => $ badwords ,
347- ];
348-
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- }
318+ return $ this ->responseFactory ->createResponse ()
319+ ->withHeader ('Content-Type ' , 'application/json ' )
320+ ->withBody ($ this ->streamFactory ->createStream (json_encode ($ data )));
321+
322+ default :
323+ if (version_compare (GeneralUtility::makeInstance (VersionNumberUtility::class)->getNumericTypo3Version (), '13.0 ' , '< ' )) {
324+ $ moduleTemplate = $ this ->moduleTemplateFactory ->create ($ request );
325+ $ view = $ this ->getView ('AjaxMetaGenerate ' , $ request );
326+ } else {
327+ $ attribute = new ExtbaseRequestParameters (ImageRecognizeController::class);
328+ $ request = $ request ->withAttribute ('extbase ' , $ attribute );
329+ $ extbaseRequest = GeneralUtility::makeInstance (Request::class, $ request );
330+ $ moduleTemplate = $ this ->moduleTemplateFactory ->create ($ extbaseRequest );
331+ }
360332
333+ $ moduleTemplate ->getDocHeaderComponent ()->disable ();
334+
335+ $ template_variables = [
336+ 'siteLanguages ' => $ siteLanguages ,
337+ 'action ' => $ action ,
338+ 'target ' => $ target ,
339+ 'fileObjects ' => $ fileObjects ?? null ,
340+ 'targetLanguage ' => (int ) $ target_language ,
341+ 'modal ' => $ modal ,
342+ 'textPrompt ' => $ defaultPrompt ,
343+ 'allTextPrompts ' => $ allPrompts ,
344+ 'imageLabels ' => $ imageLabels ,
345+ 'selectedimageLabel ' => $ defaultLabel ,
346+ 'badwords ' => $ badwords ,
347+ ];
348+
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+ }
361360
362- if (version_compare (GeneralUtility::makeInstance (VersionNumberUtility::class)->getNumericTypo3Version (), '13.0 ' , '< ' )) {
363- $ view = $ this ->getView ('AjaxMetaGenerate ' , $ request );
364- $ view ->assignMultiple ($ template_variables );
365- $ moduleTemplate ->setContent ($ view ->render ()); // @phpstan-ignore-line
366- return $ this ->htmlResponse ($ moduleTemplate ->renderContent ()); // @phpstan-ignore-line
367- } else {
368- $ moduleTemplate ->assignMultiple ($ template_variables ); // @phpstan-ignore-line
369- return $ moduleTemplate ->renderResponse ('Backend/ImageRecognize/AjaxMetaGenerate ' ); // @phpstan-ignore-line
370- }
361+
362+ if (version_compare (GeneralUtility::makeInstance (VersionNumberUtility::class)->getNumericTypo3Version (), '13.0 ' , '< ' )) {
363+ $ view = $ this ->getView ('AjaxMetaGenerate ' , $ request );
364+ $ view ->assignMultiple ($ template_variables );
365+ $ moduleTemplate ->setContent ($ view ->render ()); // @phpstan-ignore-line
366+ return $ this ->htmlResponse ($ moduleTemplate ->renderContent ()); // @phpstan-ignore-line
367+ } else {
368+ $ moduleTemplate ->assignMultiple ($ template_variables ); // @phpstan-ignore-line
369+ return $ moduleTemplate ->renderResponse ('Backend/ImageRecognize/AjaxMetaGenerate ' ); // @phpstan-ignore-line
370+ }
371371 }
372372 }
373373
0 commit comments