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..b669b776 --- /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 @babel/preset-react + 2. Edit webpack.config.js and uncomment the following lines: + + Encore + // ... + .enableReactPreset() + .addEntry('admin', './assets/js/admin.js') + + * Mark entities you want in the admin 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();