Skip to content
This repository has been archived by the owner on Apr 17, 2019. It is now read-only.

AngularJS module to structure your models with JSON schemas, build forms, and interact with RESTful API services

Notifications You must be signed in to change notification settings

ronalddddd/angular-crud-kit

Repository files navigation

angular-crud-kit

AngularJS module to structure your view-models with JSON schemas, build forms, and interact with RESTful API services

Features

  • ck-form and ck-field tags help you structure and reuse form controls.

  • (Coming soon) ck-field will automatically choose the correct form control template using swagger-spec.

  • JsonApi service manages your api calls, currently supports the Swagger Specification. No need to write your own HTTP requests. SDK for your server's API is generated using swagger-js. Just configure these settings in your app module config:

      crudKitConfigProvider.set('schemaType', 'swagger');
      crudKitConfigProvider.set('schemaUrl', 'http://api.yourserver.com/explorer/resources');
    

Quick Start

  • Install via bower:

      bower install crud-kit
    
  • Include the scripts:

      <script src="bower_components/crud-kit/dist/scripts/crudKit.js"></script>
    
  • Add to crudKit your angular module's dependencies:

      var myApp = angular.module('crudKit.demo', ['crudKit']);
    
  • Configure the schema to use for the api. Also shown is an example of how to wait for api to be ready.

      myApp.config(['crudKitConfigProvider', function ($routeProvider, crudKitConfigProvider) {
          $routeProvider
              .when('/', {
                  templateUrl: 'views/main.html',
                  controller: 'MainCtrl',
                  resolve: {
                      JsonApi: function(JsonApi){
                          return JsonApi.ready;
                      }
                  }
              });
    
          crudKitConfigProvider.set('schemaType', 'swagger');
          crudKitConfigProvider.set('schemaUrl', 'http://api.yourserver.com/explorer/resources');
      });
    
  • Start building forms:

      <!--controller example -->
      <script>
          angular.module('crudKit.demo')
              .controller('AboutCtrl', function ($scope, $rootScope, $filter, JsonApi, JSONValidator, crudKitConfig) {
                  $scope.api = JsonApi;
                  $scope.widgetSchema = crudKitConfig.schemas.Widget;
    
                  $scope.widgetInstance = {
                    title: "TEST TITLE"
                  };
    
                  $scope.saveWidget =function(model, next){
                      console.debug(model);
                      next(null, model);
                  };
              });
      </script>
      <!--ckForm Directive Example-->
      <ck-form name="widgetForm" schema="widgetSchema" model="widgetInstance" on-save="saveWidget($model, $next)" debug="true">
          <div class="col-sm-6">
              <ck-field field-name="title"></ck-field>
              <ck-field field-name="summary" options="{ template: 'textarea', label: 'Summary' }"></ck-field>
          </div>
      </ck-form>
    
  • Interacting with RESTful resources:

      // some_controller.js
      angular.module('yourApp')
          .controller('SomeCtrl', ['$scope', 'JsonApi', function($scope, JsonApi){
              $scope.save = function(model, cb){
                  JsonApi.ResourceName.upsert(model, cb);
              };
          }]);
    

Demo

After installing with bower, browse to bower_components/crud-kit/dist/index.html

TO DOs

  • Update example code
  • Cleanup docs with real example code
  • ckField auto-detect form control type from swagger-spec.
  • Default CRUD actions for ckForms using JsonApi service.
  • ckGrid directive.
  • Implement more default input templates.
  • Tests (i know i know...)

About

AngularJS module to structure your models with JSON schemas, build forms, and interact with RESTful API services

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •