• Stars
    star
    115
  • Rank 305,916 (Top 7 %)
  • Language
    JavaScript
  • License
    Apache License 2.0
  • Created about 10 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🔁 An undo/redo stack for Ember.js objects

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 (#4)

Development Instructions

  • git clone this repository
  • npm install
  • bower install

Running

More Repositories

1

intercom-ios

📱 Intercom for iOS, for integrating Intercom into your iOS application.
Objective-C
357
star
2

intercom-node

Node.js bindings for the Intercom API
TypeScript
344
star
3

intercom-php

PHP bindings for the Intercom API
PHP
284
star
4

contentful-typescript-codegen

Generate TypeScript interfaces from a Contentful environment
TypeScript
281
star
5

intercom-rails

The easiest way to install Intercom in a Rails app.
Ruby
274
star
6

intercom-ruby

Ruby bindings for the Intercom API
Ruby
272
star
7

intercom-android

Intercom for Android, for integrating Intercom into your Android application.
257
star
8

python-intercom

Python wrapper for the Intercom API.
Python
222
star
9

ember-href-to

🔗 A lightweight alternative to {{link-to}}
JavaScript
191
star
10

intercom-react-native

React Native wrapper to bridge our iOS and Android SDK
Java
100
star
11

intercom-cordova

Cordova/PhoneGap plugin for Intercom
Objective-C
95
star
12

intercom-go

Go Bindings For Intercom
Go
69
star
13

intercom-java

Java bindings for the Intercom API
Java
61
star
14

intercom-dotnet

Intercom API client library for .NET
C#
59
star
15

hippie_csv

✌️ Tolerant, liberal CSV parsing
Ruby
57
star
16

ember-computed-template-string

⚡ One-line string computed properties
JavaScript
47
star
17

cocoapods-mangle

A CocoaPods plugin which mangles the symbols of your dependencies
Ruby
44
star
18

intercom-elixir

Elixir helpers for generating the Intercom snippet and interacting with the Intercom API
Elixir
32
star
19

speakeasy

A tool for creating Go web servers which can be embedded in iOS and Android apps.
Go
29
star
20

intercom-wordpress

Intercom integration with Wordpress
PHP
28
star
21

intercom-twilio-demo

Demonstrating basic Intercom/Twilio functionality
Ruby
26
star
22

state_of_the_nation

An easy way to model state changing over time with ActiveRecord.
Ruby
24
star
23

requisite

Ruby
18
star
24

gocore

A library with a set of standardised functions for applications written in Go at Intercom
Go
10
star
25

intercom-api-postman-collection

9
star
26

Messenger-Quickstart

Quick start code to get you using Intercom locally
HTML
8
star
27

passport-intercom

Passport strategy for Intercom OAuth 2
JavaScript
8
star
28

lease

Lease is a general DynamoDB-based lease implementation
Go
8
star
29

example-basic-javascript-install

Sample project with the Intercom Messenger installed with basic JavaScript
HTML
7
star
30

passport-intercom-example-app

Example web app using passport-intercom
JavaScript
7
star
31

Intercom-OpenAPI

An OpenAPI description for Intercom's REST API
JavaScript
6
star
32

omniauth-intercom

Intercom strategy for OmniAuth
Ruby
6
star
33

oauth2-intercom

Intercom Provider for the OAuth 2.0 Client
PHP
6
star
34

ember-cli-detergent

detect and block blacklisted javascript methods in your code.
JavaScript
6
star
35

example-single-page-app-install

Example single page application with Intercom
JavaScript
5
star
36

expan-intercom

A/B testing library for Python
Python
5
star
37

dropwizard-guice

Use Guice with Dropwizard
Java
5
star
38

ember-hacker-news

JavaScript
5
star
39

intercom-php-rewrite

Work in progress PHP client using Guzzle 6
PHP
4
star
40

prfeed

A way to automate some of the things we do in the code review process (e.g., manual reposting) and improve the visibility of outstanding pull requests.
Ruby
4
star
41

MediaStreamRecorder

Fork of https://github.com/streamproc/MediaStreamRecorder
JavaScript
3
star
42

platform-series-importing-users

Ruby
3
star
43

example-php

Example PHP code for Intercom
PHP
3
star
44

intercom-install-examples

Collection of example applications with the Intercom Messenger installed
PHP
3
star
45

oauth-setup-tutorial

Simple Example of Setting up OAuth in Intercom
Ruby
2
star
46

minicom-public

Skeletal layout of an interview prototype
Ruby
2
star
47

frontend-marketing-test

CSS
1
star
48

docker-sdk

Repo of Dockerfiles for Intercom Docker SDK images
1
star
49

migration_reporter

Provides a rake task to report Active Record migration details to a given URL.
Ruby
1
star
50

example-go

Example go code for Intercom API
Go
1
star
51

pagerduty-guice

A Guice module for PagerDuty with incident key debouncing
Java
1
star
52

example-node

Example node code for the Node Docker image
JavaScript
1
star
53

ember-computed-template-string-parser

Parses string templates and produces Ember computed properties
JavaScript
1
star
54

identity-verification-code-samples

Sample code snippets for setting up Identity Verification in the Intercom Messenger
1
star
55

example-ruby

Example ruby code for the Intercom API
Ruby
1
star