marmelab/ng-admin — pull request #155 by fzaninotto (2014-12-03 20:48:21+00:00)
Title: [RFR] Refactor CRUD directory structure

Editing components is becoming more and more painful - [shotgun surgery](http://sourcemaking.com/refactoring/shotgun-surgery)-like. It's time to move things around, and reorganize the directory structure not by type (directive, template, controller), but by purpose (edit view, list view, buttons).

This change is completely backwards compatible.

After:

```
> cd src/javascripts/ng-admin/Crud/ && tree
├── CrudModule.js
├── button
│ ├── BackButton.html
│ ├── BackButton.js
│ ├── CreateButton.html
│ ├── CreateButton.js
│ ├── DeleteButton.html
│ ├── DeleteButton.js
│ ├── EditButton.html
│ ├── EditButton.js
│ ├── ListButton.html
│ ├── ListButton.js
│ ├── ShowButton.html
│ └── ShowButton.js
├── column
│ ├── BooleanColumn.html
│ ├── BooleanColumn.js
│ ├── ChoiceColumn.html
│ ├── ChoiceColumn.js
│ ├── ChoicesColumn.html
│ ├── ChoicesColumn.js
│ ├── DateColumn.html
│ ├── DateColumn.js
│ ├── EmailColumn.html
│ ├── EmailColumn.js
│ ├── NumberColumn.html
│ ├── NumberColumn.js
│ ├── PasswordColumn.html
│ ├── PasswordColumn.js
│ ├── ReferenceColumn.html
│ ├── ReferenceColumn.js
│ ├── ReferenceManyColumn.html
│ ├── ReferenceManyColumn.js
│ ├── StringColumn.html
│ ├── StringColumn.js
│ ├── TemplateColumn.html
│ ├── TemplateColumn.js
│ ├── TextColumn.html
│ ├── TextColumn.js
│ ├── WysiwygColumn.html
│ └── WysiwygColumn.js
├── delete
│ ├── DeleteController.js
│ └── delete.html
├── field
│ ├── BooleanField.html
│ ├── BooleanField.js
│ ├── ChoiceField.html
│ ├── ChoiceField.js
│ ├── ChoicesField.html
│ ├── ChoicesField.js
│ ├── DateField.html
│ ├── DateField.js
│ ├── EmailField.html
│ ├── EmailField.js
│ ├── NumberField.html
│ ├── NumberField.js
│ ├── PasswordField.html
│ ├── PasswordField.js
│ ├── ReferenceField.html
│ ├── ReferenceField.js
│ ├── ReferenceManyField.html
│ ├── ReferenceManyField.js
│ ├── StringField.html
│ ├── StringField.js
│ ├── TemplateField.html
│ ├── TemplateField.js
│ ├── TextField.html
│ ├── TextField.js
│ ├── WysiwygField.html
│ └── WysiwygField.js
├── form
│ ├── FormController.js
│ ├── create.html
│ ├── edit-attribute.html
│ └── edit.html
├── list
│ ├── Datagrid.html
│ ├── Datagrid.js
│ ├── DatagridController.js
│ ├── DatagridPagination.html
│ ├── DatagridPagination.js
│ ├── DatagridPaginationController.js
│ ├── ListActions.html
│ ├── ListActions.js
│ ├── ListController.js
│ ├── QuickFilter.html
│ ├── QuickFilter.js
│ ├── QuickFilterController.js
│ └── list.html
├── misc
│ ├── Compile.js
│ ├── ViewActions.js
│ ├── cacheTemplate.js
│ └── view-actions.html
├── repository
│ ├── FormViewRepository.js
│ ├── ListViewRepository.js
│ └── ViewRepository.js
├── routing.js
└── show
├── ShowController.js
└── show.html

9 directories, 94 files
```

Before:

```
> cd src/javascripts/ng-admin/Crud/ && tree
├── CrudModule.js
├── component
│ ├── controller
│ │ ├── DeleteController.js
│ │ ├── FormController.js
│ │ ├── ListController.js
│ │ ├── ShowController.js
│ │ └── directive
│ │ ├── DatagridController.js
│ │ ├── DatagridPaginationController.js
│ │ └── QuickFilterController.js
│ ├── directive
│ │ ├── BackButton.js
│ │ ├── Compile.js
│ │ ├── CreateButton.js
│ │ ├── Datagrid.js
│ │ ├── DatagridPagination.js
│ │ ├── DeleteButton.js
│ │ ├── EditButton.js
│ │ ├── ListActions.js
│ │ ├── ListButton.js
│ │ ├── QuickFilter.js
│ │ ├── ShowButton.js
│ │ ├── ViewActions.js
│ │ ├── column
│ │ │ ├── BooleanColumn.js
│ │ │ ├── ChoiceColumn.js
│ │ │ ├── ChoicesColumn.js
│ │ │ ├── DateColumn.js
│ │ │ ├── EmailColumn.js
│ │ │ ├── NumberColumn.js
│ │ │ ├── PasswordColumn.js
│ │ │ ├── ReferenceColumn.js
│ │ │ ├── ReferenceManyColumn.js
│ │ │ ├── StringColumn.js
│ │ │ ├── TemplateColumn.js
│ │ │ ├── TextColumn.js
│ │ │ └── WysiwygColumn.js
│ │ └── field
│ │ ├── BooleanField.js
│ │ ├── ChoiceField.js
│ │ ├── ChoicesField.js
│ │ ├── DateField.js
│ │ ├── EmailField.js
│ │ ├── NumberField.js
│ │ ├── PasswordField.js
│ │ ├── ReferenceField.js
│ │ ├── ReferenceManyField.js
│ │ ├── StringField.js
│ │ ├── TemplateField.js
│ │ ├── TextField.js
│ │ └── WysiwygField.js
│ └── service
│ ├── FormViewRepository.js
│ ├── ListViewRepository.js
│ └── ViewRepository.js
├── config
│ └── routing.js
├── form
├── run
│ └── cacheTemplate.js
└── view
├── back-button.html
├── column
│ ├── boolean.html
│ ├── choice.html
│ ├── choices.html
│ ├── date.html
│ ├── email.html
│ ├── number.html
│ ├── password.html
│ ├── reference.html
│ ├── referenceMany.html
│ ├── string.html
│ ├── template.html
│ ├── text.html
│ └── wysiwyg.html
├── create-button.html
├── create.html
├── datagrid-pagination.html
├── datagrid.html
├── delete-button.html
├── delete.html
├── edit-attribute.html
├── edit-button.html
├── edit.html
├── field
│ ├── boolean.html
│ ├── choice.html
│ ├── choices.html
│ ├── date.html
│ ├── email.html
│ ├── number.html
│ ├── password.html
│ ├── reference.html
│ ├── referenceMany.html
│ ├── string.html
│ ├── template.html
│ ├── text.html
│ └── wysiwyg.html
├── list-actions.html
├── list-button.html
├── list.html
├── quick-filter.html
├── show-button.html
├── show.html
└── view-actions.html

13 directories, 94 files
```