Przeglądaj źródła

add flash messages to inform users if a term was updated

ksieren 2 lat temu
rodzic
commit
40758e9b3d

+ 15 - 0
Classes/Controller/TermController.php

@@ -3,6 +3,8 @@
 namespace Meramo\Begriffmgt\Controller;
 use Meramo\Begriffmgt\Domain\Model\Term;
 use Meramo\Begriffmgt\Domain\Repository\TermRepository;
+use TYPO3\CMS\Core\Messaging\FlashMessage;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
 
 class TermController extends ActionController
@@ -14,6 +16,10 @@ class TermController extends ActionController
     }
 
     public function createAction($terms, $categoryObj, $typeObj, $urlObj): void {
+        $objectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
+        $flashMessageService = $objectManager->get('TYPO3\\CMS\\Core\\Messaging\\FlashMessageService');
+        $messageQueue = $flashMessageService->getMessageQueueByIdentifier('begriffmgt');
+
         foreach ($terms as $term) {
             if($term !== '' && !($this->termRepository->findByTitle($term))) {
                 $termObj = new Term();
@@ -29,6 +35,15 @@ class TermController extends ActionController
                 $termObj->setType($typeObj);
                 $termObj->setUrl($urlObj);
                 $this->termRepository->update($termObj);
+
+                $flashMessage = GeneralUtility::makeInstance(
+                    FlashMessage::class,
+                    'Begriff ' . $term . ' wurde aktualisiert. Begriff war bereits vorhanden. Bitte Liste prüfen!',
+                    'Update', // the header of the flash message
+                    FlashMessage::OK, // the severity of the flash message
+                    TRUE // whether the flash message should be stored in the session (to survive redirects)
+                );
+                $messageQueue->addMessage($flashMessage);
             }
         }
     }

+ 18 - 1
Resources/Private/Templates/Dashboard/Index.html

@@ -4,6 +4,24 @@
 
 
 <f:section name="main">
+  <style>
+    ul.no-indent {
+      list-style-type: none;
+      padding: 0;
+      margin: 0;
+    }
+  </style>
+  <f:flashMessages queueIdentifier="begriffmgt" as="flashMessages">
+    <ul class="no-indent">
+      <f:for each="{flashMessages}" as="flashMessage">
+        <li class="alert-warning" style="width: 100%">
+          {flashMessage.message}
+        </li>
+      </f:for>
+    </ul>
+  </f:flashMessages>
+
+
   <h1>Dashboard</h1>
 
 
@@ -49,7 +67,6 @@
 
   <hr style="width: 100%; border: 1px solid black; margin: 20px 0;">
   <h2>Add words (semicolon-separated) with a type</h2>
-  <f:flashMessages />
   <f:form action="create">
     <div class="form-group" additionalAttributes="{style: 'margin-bottom: 1rem;'}">
       <label for="termList">Terms:</label>

+ 1 - 1
composer.json

@@ -3,7 +3,7 @@
   "license": "GPL-3.0",
   "description": "Erweiterung um Chatbot Begriffe zu Verwalten",
   "require": {
-    "php": ">=7.0.0",
+    "php": ">=7.4.0",
     "typo3/cms-core": "^8.7 || ^9.5 || ^10.4"
   },
   "type": "typo3-cms-extension",