Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rekord Session

Build Status devDependency Status Dependency Status License Alpha

Rekord is a javascript REST ORM that is offline and real-time capable.

rekord-session enables you to create an experience for your user where they can make any number of changes to various models and their related models and they can perform a mass "Save" or decide to do a mass "Cancel" of changes. rekord-session works seemlessly with existing code, capturing all creations, updates, and removes and simulating them until the session is saved or discarded.

Installation

The easiest way to install rekord-session is through bower via bower install rekord-session.

  • rekord-session.js is 14.0k (3.0kb gzipped)
  • rekord-session.min.js is 7.2k (2.2kb gzipped)

Example

// The object we start with
var project = Project.boot({
  id: 1,
  name: 'My Project',
  lists: [
    {
      id: 2,
      name: 'Grocery List',
      items: [
        {
          id: 3,          
          name: 'Milk'
        },
        {
          id: 4,
          name: 'Bread'
        }
      ]
    }
  ]
});

var sess = new Session();

// Watch this object, and its relations (and sub relations)
sess.watch( project, {
  lists: {
    items: true
  }
});

// You can watch a list and all models - you can also specify relations here.
// This doesn't have an effect since this collection is already being watched
// because of the previous statement
sess.watchCollection( project.lists );

// You can create an item and since the List(2) is being watched, this will be
// associated with the session and won't be saved until session.save
Item.create({
  list_id: 2,
  name: 'Taco Seasoning'
});

// Remove an item
Item.get( 4 ).$remove();

// Change something
List.get( 2 ).name = 'My Grocery List';

// The session has changes (an insert, remove, and update)
sess.hasChanges();

// If rekord-validation is added, require valid models
sess.setValidationRequired( true );

// Apply the pending changes and return a promise that resolves when all changes
// are applied.
sess.save();

// Undo all changes (remove created, add the remove back, and restore the list name to its previous value)
sess.discard();

// All changes are ignored by the session after this, they are executed normally
sess.disable();

// You must destroy the session to unregister all the model & collection listeners
// and MOST importantly a model/collection can only be related to a single active
// session at a time.
sess.destroy();

// Forget about this model and all related models
sess.unwatch( project );

About

Adds mass changes & discards to Rekord

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages