From 61885245862857d6bc7a712302ef46ff91d2bc8f Mon Sep 17 00:00:00 2001 From: rainydaysavings Date: Fri, 4 Sep 2020 17:38:48 +0100 Subject: [PATCH] [PLUGIN] Recycle initial implementation --- plugins/Repeat/Repeat.php | 65 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 plugins/Repeat/Repeat.php diff --git a/plugins/Repeat/Repeat.php b/plugins/Repeat/Repeat.php new file mode 100644 index 0000000000..5830504837 --- /dev/null +++ b/plugins/Repeat/Repeat.php @@ -0,0 +1,65 @@ +. +// }}} + +namespace Plugin\Repeat; + +use App\Core\DB\DB; +use App\Core\Event; +use App\Core\Form; +use App\Core\Module; +use App\Entity\Note; +use Symfony\Component\Form\Extension\Core\Type\HiddenType; +use Symfony\Component\Form\Extension\Core\Type\SubmitType; +use Symfony\Component\HttpFoundation\Request; + +class Repeat extends Module +{ + public function onAddNoteActions(Request $request, Note $note, array &$actions) + { + $to_repeat = DB::find('note', ['id' => $note->getId()]); + $is_set = false; + $form = Form::create([ + ['is_set', HiddenType::class, ['data' => $is_set ? '1' : '0']], + ['note_id', HiddenType::class, ['data' => $note->getId()]], + ['repeat', SubmitType::class, ['label' => 'Repeat']], + ]); + $form->handleRequest($request); + + if ($form->isSubmitted()) { + $data = $form->getData(); + if ($data['note_id'] == $to_repeat && $form->isValid()) { + // Loose comparison + if (!$data['is_set']) { + var_dump($note); + die(); + DB::persist(Note::create(['repeat_of' => $note->getId(), 'content' => $note->getContent(), 'is_local' => true])); + DB::flush(); + } else { + DB::remove($to_repeat); + DB::flush(); + } + } else { + // TODO display errors + } + } + + $actions[] = $form->createView(); + return Event::next; + } +} \ No newline at end of file