From 40e6b96a0f624a7c46989b4304eb3a7391dcbd5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= Date: Sat, 8 Dec 2018 21:42:28 +0100 Subject: [PATCH] Add a recipe for API Platform Admin --- api-platform/admin-pack/1.0/assets/js/admin.js | 7 +++++++ .../1.0/config/routes/api_platform_admin.yaml | 5 +++++ api-platform/admin-pack/1.0/manifest.json | 8 ++++++++ api-platform/admin-pack/1.0/post-install.txt | 16 ++++++++++++++++ .../admin-pack/1.0/templates/admin.html.twig | 10 ++++++++++ .../webpack-encore-bundle/1.0/webpack.config.js | 4 ++++ 6 files changed, 50 insertions(+) create mode 100644 api-platform/admin-pack/1.0/assets/js/admin.js create mode 100644 api-platform/admin-pack/1.0/config/routes/api_platform_admin.yaml create mode 100644 api-platform/admin-pack/1.0/manifest.json create mode 100644 api-platform/admin-pack/1.0/post-install.txt create mode 100644 api-platform/admin-pack/1.0/templates/admin.html.twig diff --git a/api-platform/admin-pack/1.0/assets/js/admin.js b/api-platform/admin-pack/1.0/assets/js/admin.js new file mode 100644 index 00000000..5cef2421 --- /dev/null +++ b/api-platform/admin-pack/1.0/assets/js/admin.js @@ -0,0 +1,7 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import { HydraAdmin } from '@api-platform/admin'; + +const entrypoint = document.getElementById('api-entrypoint').innerText; + +ReactDOM.render(, document.getElementById('api-platform-admin')); diff --git a/api-platform/admin-pack/1.0/config/routes/api_platform_admin.yaml b/api-platform/admin-pack/1.0/config/routes/api_platform_admin.yaml new file mode 100644 index 00000000..037c6872 --- /dev/null +++ b/api-platform/admin-pack/1.0/config/routes/api_platform_admin.yaml @@ -0,0 +1,5 @@ +admin: + path: /admin + controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController + defaults: + template: admin.html.twig diff --git a/api-platform/admin-pack/1.0/manifest.json b/api-platform/admin-pack/1.0/manifest.json new file mode 100644 index 00000000..1e177561 --- /dev/null +++ b/api-platform/admin-pack/1.0/manifest.json @@ -0,0 +1,8 @@ +{ + "copy-from-recipe": { + "assets/": "assets/", + "config/": "%CONFIG_DIR%/", + "templates/": "templates/" + }, + "aliases": ["api-admin", "api-platform-admin", "react-admin"] +} diff --git a/api-platform/admin-pack/1.0/post-install.txt b/api-platform/admin-pack/1.0/post-install.txt new file mode 100644 index 00000000..d312271c --- /dev/null +++ b/api-platform/admin-pack/1.0/post-install.txt @@ -0,0 +1,16 @@ + + To finish the install + + + * Your admin is almost ready: + 1. Install the JavaScript dependencies by running yarn add @api-platform/admin + 2. Go in webpack.config.js and uncomment the following lines: + + Encore + // ... + .enableReactPreset() + .addEntry('admin', './assets/js/admin.js') + + * Mark any entity with the @ApiResource annotation, it appears in the admin! + + * Using MakerBundle? Try php bin/console make:entity --api-resource diff --git a/api-platform/admin-pack/1.0/templates/admin.html.twig b/api-platform/admin-pack/1.0/templates/admin.html.twig new file mode 100644 index 00000000..45e8b817 --- /dev/null +++ b/api-platform/admin-pack/1.0/templates/admin.html.twig @@ -0,0 +1,10 @@ +{% extends 'base.html.twig' %} + +{% block title %}API Platform Admin{% endblock %} + +{% block body %}
{% endblock %} + +{% block javascripts %} + + {{ encore_entry_script_tags('admin') }} +{% endblock %} diff --git a/symfony/webpack-encore-bundle/1.0/webpack.config.js b/symfony/webpack-encore-bundle/1.0/webpack.config.js index 5c3109eb..6dc3bc21 100644 --- a/symfony/webpack-encore-bundle/1.0/webpack.config.js +++ b/symfony/webpack-encore-bundle/1.0/webpack.config.js @@ -46,6 +46,10 @@ Encore // uncomment if you're having problems with a jQuery plugin //.autoProvidejQuery() + + // uncomment if you use API Platform Admin (composer req api-admin) + //.enableReactPreset() + //.addEntry('admin', './assets/js/admin.js') ; module.exports = Encore.getWebpackConfig();