From 3b32e2eeb1b44be0fe2273554f541dc666554e92 Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Sun, 23 Sep 2018 20:51:09 +0200 Subject: [PATCH] PWA per provider basis --- src/Controller/MainController.php | 8 ++++++ src/Provider/Dummy/DummyProvider.php | 5 ++++ src/Provider/Provider.php | 1 + src/Provider/ZtmGdansk/ZtmGdanskProvider.php | 5 ++++ templates/app.html.twig | 1 + templates/base.html.twig | 2 +- templates/manifest.json.twig | 30 ++++++++++++++++++++ 7 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 templates/manifest.json.twig diff --git a/src/Controller/MainController.php b/src/Controller/MainController.php index 89a120a..fa34056 100644 --- a/src/Controller/MainController.php +++ b/src/Controller/MainController.php @@ -24,4 +24,12 @@ class MainController extends Controller { return $this->render('app.html.twig', ['provider' => $provider]); } + + /** + * @Route("/{provider}/manifest.json", name="webapp_manifest") + */ + public function manifest(Provider $provider) + { + return $this->render('manifest.json.twig', ['provider' => $provider]); + } } \ No newline at end of file diff --git a/src/Provider/Dummy/DummyProvider.php b/src/Provider/Dummy/DummyProvider.php index 3736862..fa11cba 100644 --- a/src/Provider/Dummy/DummyProvider.php +++ b/src/Provider/Dummy/DummyProvider.php @@ -42,6 +42,11 @@ class DummyProvider implements Provider return "Dummy data for debugging"; } + public function getShortName() + { + return "dummy"; + } + public function getIdentifier() { return "dummy"; diff --git a/src/Provider/Provider.php b/src/Provider/Provider.php index f346fec..f7c1d85 100644 --- a/src/Provider/Provider.php +++ b/src/Provider/Provider.php @@ -11,5 +11,6 @@ interface Provider public function getTrackRepository(): TrackRepository; public function getName(); + public function getShortName(); public function getIdentifier(); } \ No newline at end of file diff --git a/src/Provider/ZtmGdansk/ZtmGdanskProvider.php b/src/Provider/ZtmGdansk/ZtmGdanskProvider.php index 0fa6685..84b660d 100644 --- a/src/Provider/ZtmGdansk/ZtmGdanskProvider.php +++ b/src/Provider/ZtmGdansk/ZtmGdanskProvider.php @@ -30,6 +30,11 @@ class ZtmGdanskProvider implements Provider return 'MZKZG - Trójmiasto'; } + public function getShortName() + { + return 'Trójmiasto'; + } + public function getIdentifier() { return 'trojmiasto'; diff --git a/templates/app.html.twig b/templates/app.html.twig index 4e9e119..6a80e47 100644 --- a/templates/app.html.twig +++ b/templates/app.html.twig @@ -1,5 +1,6 @@ {% extends 'base.html.twig' %} {% block title "#{parent()} - #{provider.name}" %} +{% block manifest path('webapp_manifest', { provider: provider.identifier }) %} {% block body %}
diff --git a/templates/base.html.twig b/templates/base.html.twig index 2a69117..df2ce10 100644 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -4,7 +4,7 @@ - + diff --git a/templates/manifest.json.twig b/templates/manifest.json.twig new file mode 100644 index 0000000..06ade28 --- /dev/null +++ b/templates/manifest.json.twig @@ -0,0 +1,30 @@ +{ + "name": "Czy Dojadę? - {{ provider.shortName }}", + "short_name": "Czy Dojadę? - {{ provider.shortName }}", + "orientation": "portrait", + "lang": "pl_PL", + "start_url": "{{ path('app', { provider: provider.identifier }) }}", + "display": "standalone", + "background_color": "white", + "theme_color": "#005ea8", + "description": "Odpowiedź na odwieczne pytanie ludzkości - czy tramwaje jeżdżą?", + "icons": [{ + "src": "{{ asset('images/icon-256.png') }}", + "sizes": "256x256" + },{ + "src": "{{ asset('images/icon-512.png') }}", + "sizes": "512x512" + },{ + "src": "{{ asset('images/icon-64.png') }}", + "sizes": "64x64" + },{ + "src": "{{ asset('images/icon-128.png') }}", + "sizes": "128x128" + },{ + "src": "{{ asset('images/icon-192.png') }}", + "sizes": "192x192" + },{ + "src": "{{ asset('images/icon-96.png') }}", + "sizes": "96x96" + }] +}