+ // handle tagging rules import
+ $taggingRulesImportform = $this->createForm(TaggingRuleImportType::class);
+ $taggingRulesImportform->handleRequest($request);
+
+ if ($taggingRulesImportform->isSubmitted() && $taggingRulesImportform->isValid()) {
+ $message = 'flashes.config.notice.tagging_rules_not_imported';
+ $file = $taggingRulesImportform->get('file')->getData();
+
+ if (null !== $file && $file->isValid() && \in_array($file->getClientMimeType(), ['application/json', 'application/octet-stream'], true)) {
+ $content = json_decode(file_get_contents($file->getPathname()), true);
+
+ if (\is_array($content)) {
+ foreach ($content as $rule) {
+ $taggingRule = new TaggingRule();
+ $taggingRule->setRule($rule['rule']);
+ $taggingRule->setTags($rule['tags']);
+ $taggingRule->setConfig($config);
+ $em->persist($taggingRule);
+ }
+
+ $em->flush();
+
+ $message = 'flashes.config.notice.tagging_rules_imported';
+ }
+ }
+
+ $this->addFlash('notice', $message);
+
+ return $this->redirect($this->generateUrl('config') . '#set5');
+ }
+