forked from marmelab/react-admin
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from marmelab/master
upmerge
- Loading branch information
Showing
872 changed files
with
56,661 additions
and
42,086 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,3 +2,4 @@ node_modules | |
build | ||
lib | ||
esm | ||
prism.js |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
language: node_js | ||
sudo: required | ||
node_js: | ||
- '10.5.0' | ||
- 'lts/*' | ||
addons: | ||
chrome: stable | ||
env: | ||
|
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,7 +9,7 @@ A frontend Framework for building admin applications running in the browser on t | |
## Features | ||
|
||
* Adapts to any backend (REST, GraphQL, SOAP, etc.) | ||
* Powered by [material-ui](https://v1.material-ui.com/), [redux](https://redux.js.org/), [redux-form](https://redux-form.com/7.3.0/), [redux-saga](https://redux-saga.js.org/), [react-router](https://reacttraining.com/react-router/), [recompose](https://github.com/acdlite/recompose), [reselect](https://github.com/reduxjs/reselect) and a few more | ||
* Powered by [material-ui](https://material-ui.com/), [redux](https://redux.js.org/), [react-final-form](https://final-form.org/react), [redux-saga](https://redux-saga.js.org/), [react-router](https://reacttraining.com/react-router/), [recompose](https://github.com/acdlite/recompose), [reselect](https://github.com/reduxjs/reselect) and a few more | ||
* Super-fast UI thanks to optimistic rendering (renders before the server returns) | ||
* Undo updates and deletes for a few seconds | ||
* Complete documentation | ||
|
@@ -19,7 +19,7 @@ A frontend Framework for building admin applications running in the browser on t | |
* Conditional formatting | ||
* Themeable | ||
* Supports any authentication provider (REST API, OAuth, Basic Auth, ...) | ||
* Full-featured Datagrid (sort, pagination, filters) | ||
* Full-featured datagrid (sort, pagination, filters) | ||
* Filter-as-you-type | ||
* Supports any form layout (simple, tabbed, etc.) | ||
* Custom actions | ||
|
@@ -80,7 +80,7 @@ The `<Resource>` component is a configuration component that allows to define su | |
```jsx | ||
// in posts.js | ||
import React from 'react'; | ||
import { List, Datagrid, Edit, Create, SimpleForm, DateField, TextField, EditButton, DisabledInput, TextInput, LongTextInput, DateInput } from 'react-admin'; | ||
import { List, Datagrid, Edit, Create, SimpleForm, DateField, TextField, EditButton, TextInput, DateInput } from 'react-admin'; | ||
import BookIcon from '@material-ui/core/svg-icons/action/book'; | ||
export const PostIcon = BookIcon; | ||
|
||
|
@@ -104,13 +104,13 @@ const PostTitle = ({ record }) => { | |
export const PostEdit = (props) => ( | ||
<Edit title={<PostTitle />} {...props}> | ||
<SimpleForm> | ||
<DisabledInput source="id" /> | ||
<TextInput disabled source="id" /> | ||
<TextInput source="title" /> | ||
<TextInput source="teaser" options={{ multiLine: true }} /> | ||
<LongTextInput source="body" /> | ||
<TextInput multiline source="body" /> | ||
<DateInput label="Publication date" source="published_at" /> | ||
<TextInput source="average_note" /> | ||
<DisabledInput label="Nb views" source="views" /> | ||
<TextInput disabled label="Nb views" source="views" /> | ||
</SimpleForm> | ||
</Edit> | ||
); | ||
|
@@ -120,7 +120,7 @@ export const PostCreate = (props) => ( | |
<SimpleForm> | ||
<TextInput source="title" /> | ||
<TextInput source="teaser" options={{ multiLine: true }} /> | ||
<LongTextInput source="body" /> | ||
<TextInput multiline source="body" /> | ||
<TextInput label="Publication date" source="published_at" /> | ||
<TextInput source="average_note" /> | ||
</SimpleForm> | ||
|
@@ -140,7 +140,7 @@ See the [Data Providers documentation](https://marmelab.com/react-admin/DataProv | |
|
||
## Batteries Included But Removable | ||
|
||
React-admin is designed as a library of loosely coupled React components built on top of [material-ui](http://v1.material-ui.com/), in addition to controller functions implemented the Redux way. It is very easy to replace one part of react-admin with your own, e.g. to use a custom datagrid, GraphQL instead of REST, or bootstrap instead of Material Design. | ||
React-admin is designed as a library of loosely coupled React components built on top of [material-ui](https://material-ui.com/), in addition to controller functions implemented the Redux way. It is very easy to replace one part of react-admin with your own, e.g. to use a custom datagrid, GraphQL instead of REST, or bootstrap instead of Material Design. | ||
|
||
## Examples | ||
|
||
|
@@ -173,13 +173,60 @@ And then browse to the URL displayed in your console. | |
|
||
## Contributing | ||
|
||
Pull requests are welcome. You must follow the coding style of the existing files (based on [prettier](https://github.com/prettier/prettier)), and include unit tests and documentation. Be prepared for a thorough code review, and be patient for the merge - this is an open-source initiative. | ||
If you want to give a hand: Thank you! There are many things you can do to help making react-admin better. | ||
|
||
The easiest task is **bug triaging**. Check that new issues on GitHub follow the issue template and give a way to reproduce the issue. If not, comment on the issue to ask precisions. Then, try and reproduce the issue following the description. If you managed to reproduce the issue, add a comment to say it. Otherwise, add a comment to say that something is missing. | ||
|
||
The second way to contribute is to **answer support questions on [StackOverflow](https://stackoverflow.com/questions/tagged/react-admin)**. There are many beginner questions there, so even if you're not super experienced with react-admin, there is someone you can help there. | ||
|
||
Pull requests for **bug fixes** are welcome on the [GitHub repository](https://github.com/marmelab/react-admin). There is always a bunch of [issues labeled "Good First Issue"](https://github.com/marmelab/react-admin/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) in the bug tracker - start with these. | ||
|
||
If you want to **add a feature**, you can open a Pull request on the `next` branch. We don't accept all features - we try to keep the react-admin code small and manageable. Try and see if your feature can't be built as an additional `npm` package. If you're in doubt, open a "Feature Request" issue to see if the core team would accept your feature before developing it. | ||
|
||
For all Pull requests, you must follow the coding style of the existing files (based on [prettier](https://github.com/prettier/prettier)), and include unit tests and documentation. Be prepared for a thorough code review, and be patient for the merge - this is an open-source initiative. | ||
|
||
**Tip**: Most of the commands used by the react-admin developers are automated in the `makefile`. Feel free to type `make` without argument to see a list of the available commands. | ||
|
||
When developing, most of the time we use the simple example to do visual check. If you called `make run-simple`, any of the changes you make to the react-admin packages triggers a live update of the simple example in your browser. | ||
### Setup | ||
|
||
Clone this repository and run `make install` to grab the dependencies, then `make build` to compile the sources from TypeScript to JS. | ||
|
||
### Testing Your Changes In The Example Apps | ||
|
||
When developing, most of the time we use the **simple example** to do visual check. It's the same application that we use in CodeSandbox to reproduce errors (see https://codesandbox.io/s/github/marmelab/react-admin/tree/master/examples/simple). The source is located under `examples/simple/`. Call `make run` to launch that example on port 8080 (http://localhost:8080). This command includes a `watch` on the react-admin source, so any of the changes you make to the react-admin packages triggers a live update of the simple example in your browser. | ||
|
||
However, the simple example is sometimes too limited. You can use the **demo example** (the source for https://marmelab.com/react-admin-demo/), which is more complete. The source is located under `examples/demo/`. Call `make run-demo` to launch the demo example with a REST dataProvider, or `make run-graphql-demo` to run it with a GraphQL dataProvider. Unfortunately, due to the fact that we use Create React App for this demo, these commands don't watch the changes made in the packages. You'll have to rebuild the react-admin packages after a change (using `make build`, or the more targeted `make build-ra-core`, `make build-ra-ui-materialui`, etc) to see the effect in the demo app. | ||
|
||
Both of these examples work without server - the API is simulated on the client-side. | ||
|
||
### Testing Your Changes In Your App | ||
|
||
Using `yarn link`, you can have your project use a local checkout of the react-admn package instead of npm. This allows you to test react-admin changes in your app: | ||
|
||
```sh | ||
# Register your local react-admin as a linkable package | ||
$ cd /code/path/to/react-admin/packages/react-admin && yarn link | ||
|
||
# Replace the npm-installed version with a symlink to your local version | ||
$ cd /code/path/to/myapp/ && yarn link react-admin | ||
|
||
However, the simple example is sometimes too limited. You can use the demo example, which is more complete, to test your changes. Unfortunately, due to the fact that we use Create React App for this demo, the `make run-demo` command doesn't watch the changes made in the packages. You'll have to rebuild the packages after a change (using `make build`, or the more targeted `make build-ra-core`, `make build-ra-ui-materialui`, etc) to see the effect in the demo app. | ||
# If you run into issues with React red-screen, then you need to register your app's version of React as a linkable package | ||
|
||
$ cd /code/path/to/myapp/node_modules/react && yarn link | ||
# And then replace the npm-installed version of React with a symlink to your app's node_modules version | ||
$ cd /code/path/to/react-admin/ && yarn link react | ||
|
||
# Rebuild the packages with the same version of React | ||
$ cd /code/path/to/react-admin/ && make build | ||
|
||
# Return to your app and ensure all dependencies have resolved | ||
$ cd /code/path/to/myapp/ && yarn install | ||
|
||
# Start your app | ||
$ yarn start | ||
``` | ||
|
||
### Automated Tests | ||
|
||
Automated tests are also crucial in our development process. You can run all the tests (linting, unit and functional tests) by calling: | ||
|
||
|
@@ -193,10 +240,12 @@ Unit tests use `jest`, so you should be able to run a subset of tests, or run te | |
yarn jest | ||
``` | ||
|
||
Besides, tests related to the modified files are ran automatically at commit useing a git pre-commit hook. this means you won't be able to commit your changes if they break the tests. | ||
Besides, tests related to the modified files are ran automatically at commit using a git pre-commit hook. This means you won't be able to commit your changes if they break the tests. | ||
|
||
When working on the end to end tests, you can leverage [cypress](https://www.cypress.io/) runner by starting the simple example yourself (`make run-simple` or `yarn run-simple`) and starting cypress in another terminal (`make test-e2e-local` or `yarn test-e2e-local`). | ||
|
||
### Coding Standards | ||
|
||
If you have coding standards problems, you can fix them automatically using `prettier` by calling | ||
|
||
```sh | ||
|
@@ -205,6 +254,8 @@ make prettier | |
|
||
However, these commands are ran automatically at each commit so you shouldn't have to worry about them. | ||
|
||
### Documentation | ||
|
||
If you want to contribute to the documentation, install [jekyll](https://jekyllrb.com/docs/home/), then call | ||
|
||
```sh | ||
|
@@ -213,29 +264,6 @@ make doc | |
|
||
And then browse to [http://localhost:4000/](http://localhost:4000/) | ||
|
||
*Note*: if you have added a section with heading to the docs, you also have to add it to `docs/_layouts/default.html` (the links on the left) manually. | ||
|
||
If you are using react-admin as a dependency, and if you want to try and hack it, here is the advised process: | ||
|
||
```sh | ||
# in myapp | ||
# install react-admin from GitHub in another directory | ||
$ cd .. | ||
$ git clone [email protected]:marmelab/react-admin.git && cd react-admin && make install | ||
# replace your node_modules/react-admin by a symbolic link to the github checkout | ||
$ cd ../myapp | ||
$ npm link ../react-admin/packages/react-admin | ||
# go back to the checkout, and replace the version of react by the one in your app | ||
$ cd ../react-admin | ||
$ npm link ../myapp/node_modules/react | ||
$ make watch | ||
# in another terminal, go back to your app, and start it as usual | ||
$ cd ../myapp | ||
$ npm run | ||
``` | ||
|
||
**Tip**: If you're on Windows and can't use `make`, try [this Gist](https://gist.github.com/mantis/bb5d9f7d492f86e94341816321500934). | ||
|
||
## License | ||
|
||
React-admin is licensed under the [MIT License](https://github.com/marmelab/react-admin/blob/master/LICENSE.md), sponsored and supported by [marmelab](http://marmelab.com). | ||
|
Oops, something went wrong.