Skip to content

mhkolk/angular-crud

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Angular CRUD

NPM version Build Status Dependency Status

Generating CRUD applications with the Angular CLI and Schematics.

Scaffold files for CRUD

Scaffold List

Scaffold Detail View

Tutorial: Getting Started

Follow the steps below to see how this library works, or watch this screencast.

  1. Clone this repository.

    git clone https://github.com/manfredsteyer/angular-crud
    

    You could also start with an empty project but this repo contains everything you need to get started quickly: theming, configured routing, and a menu.

  2. Build the angular-crud schematic:

    cd angular-crud
    npm install
    npm run build
    npm pack
    
  3. Install the needed npm packages:

    cd demo
    npm i --no-save ../angular-crud/*.tgz
    # or install the latest released version with: npm install -D angular-crud
    npm install
    

    NOTE: For Bootstrap and Angular Material, use demo-bootstrap and demo-material in the first command.

  4. Switch to the folder src/app and create a sub-folder hotel with a file model.json. Put the following content into this file:

    { 
        "title": "Hotel",
        "entity": "hotel",
        "api": {
          "url": "http://www.angular.at/api/hotel"
        },
        "filter": [
          "city"
        ],
        "fields": [
          {
            "name": "id",
            "label": "Id",
            "isId": true,
            "readonly": true,
            "type": "number"
          },
          {
            "name": "name",
            "type": "string",
            "label": "Name"
          },
          {
            "name": "city",
            "type": "string",
            "label": "City"
          },
          {
            "name": "stars",
            "type": "string",
            "control": "number",
            "label": "Stars"
          } 
        ]
    }

    The generator is using a json5 parser. This means that you can use comments, omit quotation marks, and use trailing commas.

  5. In your project's root directory, run the following Angular CLI based command:

    ng g angular-crud:crud-module hotel
    
  6. Have a look at the generated files.

  7. Open the file sidebar.component.html and uncomment the link to the generated route.

  8. Switch to the project's root and start the application:

    npm start
    
  9. Open http://localhost:4200 and switch to the menu item Hotels. You should now see your generated form.

    Please note, that you cannot save records with Ids 1 to 5 b/c they are restricted for demos.

Bootstrap and Angular Material

This library supports Bootstrap, Angular Material, and Paper Dashboard templates. It attempts to determine which templates to use by inspecting your package.json. You can also force which templates to use:

  • --style bootstrap: forces Bootstrap templates
  • --style material: forces Angular Material templates
  • --style paper-dashboard: forces Paper Dashboard templates

For example:

ng g angular-crud:crud-module note --style bootstrap

Paper Dashboard is the default if you don't specify a --style parameter and no Bootstrap or Angular Material dependencies are found in package.json.

Bootstrap Screenshots

Bootstrap List

Bootstrap Detail View

Material Screenshots

Angular Material List

Angular Material Detail View

Extending angular-crud

You can fork this repo and extend the generated code using Schematics. Information about how to use Schematics can be found here:

Call for Contributions

  • Validation
  • Navigating between Records
  • Lookups with dropdown fields etc.
  • Configure Base URL
  • Supporting more field types (date, checkbox etc.)

If you want to contribute one of those features or other features feel free to reach out. Let's join forces to provide a great solution!

More Information

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 54.6%
  • CSS 26.4%
  • HTML 17.1%
  • JavaScript 1.9%