diff options
Diffstat (limited to '')
-rw-r--r-- | third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/emberjs/app/services/repo.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/emberjs/app/services/repo.js b/third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/emberjs/app/services/repo.js new file mode 100644 index 0000000000..cffa3858fd --- /dev/null +++ b/third_party/webkit/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/emberjs/app/services/repo.js @@ -0,0 +1,27 @@ +import Ember from 'ember'; +import localStorageMemory from './memory'; + +export default Ember.Service.extend({ + lastId: 0, + data: null, + findAll() { + return this.get('data') || + this.set('data', JSON.parse(window.localStorageMemory.getItem('todos') || '[]')); + }, + + add(attrs) { + let todo = Object.assign({ id: this.incrementProperty('lastId') }, attrs); + this.get('data').pushObject(todo); + this.persist(); + return todo; + }, + + delete(todo) { + this.get('data').removeObject(todo); + this.persist(); + }, + + persist() { + window.localStorageMemory.setItem('todos', JSON.stringify(this.get('data'))); + } +}); |