From 7d15bfb04c309ce08206dfb9347a81d4702aa9dd Mon Sep 17 00:00:00 2001 From: vincent Date: Wed, 28 Aug 2024 22:07:48 +0200 Subject: [PATCH] ajoute le widget clipboard --- assets/controllers/clipboard_controller.js | 8 ++++++++ config/packages/twig.yaml | 1 + src/Service/SourceGenerator.php | 28 ++++++++++++++++++++++++++++ templates/macro.html.twig | 12 ++++++++++++ templates/task/show.html.twig | 7 ++----- 5 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 assets/controllers/clipboard_controller.js create mode 100644 src/Service/SourceGenerator.php diff --git a/assets/controllers/clipboard_controller.js b/assets/controllers/clipboard_controller.js new file mode 100644 index 0000000..18bc059 --- /dev/null +++ b/assets/controllers/clipboard_controller.js @@ -0,0 +1,8 @@ +import { Controller } from "@hotwired/stimulus" + +export default class extends Controller { + static targets = [ "source" ] + copy() { + navigator.clipboard.writeText(this.sourceTarget.value) + } +} diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml index ae3fe83..b9d1ac3 100644 --- a/config/packages/twig.yaml +++ b/config/packages/twig.yaml @@ -8,6 +8,7 @@ twig: - { route: 'app_project', label: 'Projets', icon: '' } taskLifecycleManager: '@App\Service\TaskLifecycleManager' geoJsonManager: '@App\Service\GeoJsonManager' + sourceGenerator: '@App\Service\SourceGenerator' short_title: '%short_title%' long_title: '%long_title%' diff --git a/src/Service/SourceGenerator.php b/src/Service/SourceGenerator.php new file mode 100644 index 0000000..69820e0 --- /dev/null +++ b/src/Service/SourceGenerator.php @@ -0,0 +1,28 @@ +getProject(); + + $parts[] = $project->getName(); + $parts[] = $task->getName(); + + foreach(explode(' ', $project->getHashtags()) as $hashtag) { + $parts[] = $hashtag; + } + + $source = implode(' ', $parts); + + return $source; + } + +} diff --git a/templates/macro.html.twig b/templates/macro.html.twig index 305b663..14bc607 100644 --- a/templates/macro.html.twig +++ b/templates/macro.html.twig @@ -40,3 +40,15 @@ {% endfor %} {% endmacro %} + +{% macro clipboard(text) %} +
+ + +
+{% endmacro %} diff --git a/templates/task/show.html.twig b/templates/task/show.html.twig index 6b603f1..bed464f 100644 --- a/templates/task/show.html.twig +++ b/templates/task/show.html.twig @@ -76,16 +76,13 @@ Commentaire - {{ project.name }} {{ task.name }} - {% for hashtag in project.hashtags|split(' ') %} - {{ '#' ~ hashtag }} - {% endfor %} + {{ macro.clipboard(sourceGenerator.generate(task)) }} Source - {{ project.source }} + {{ macro.clipboard(project.source) }}