Giter Club home page Giter Club logo

ember-undo-stack's Introduction

ember-undo-stack

Build Status

A simple undo/redo stack for Ember.js objects

Questions? Ping me @gavinjoyce

Installation

This is an Ember CLI addon, to install:

npm install ember-undo-stack --save

Demo

undo2

Usage Instructions

Add the UndoStack mixin and implement a checkpointData computed property and a restoreCheckpoint function:

var Cat = Ember.Object.extend(UndoStack, {
  name: 'Sully',
  color: 'Black',

  checkpointData: function() {
    return {
      name: this.get('name'),
      color: this.get('color')
    }
  }.property('name', 'color'),

  restoreCheckpoint: function(data) {
    this.setProperties({
      name: data.name,
      color: data.color
    });
  }
})

The UndoStack mixin adds checkpoint, undo and redo functions to your object which can be used as follows:

var cat = Cat.create({
  name: 'Sooty',
  color: 'Black'
});

cat.checkpoint();

cat.set('name', 'Hugo');
cat.checkpoint();

cat.undo();
cat.get('name'); // => 'Sooty'

cat.redo();
cat.get('name'); // => 'Hugo'

A throttledCheckpoint function and undoCheckpointThrottleInMilliseconds property are also added.

TODOs

  • Create a few sample applications
  • Store a diff between checkpoints instead of a copy (intercom#4)

Development Instructions

  • git clone this repository
  • npm install
  • bower install

Running

ember-undo-stack's People

Contributors

danielhusar avatar ember-tomster avatar gavinjoyce avatar jasonmit avatar paddyobrien avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.