1 RemoteStorage.defineModule('tasks', function(privateClient, publicClient) {
3 privateClient.cache('todos/', true);
6 var i, random, uuid = '';
8 random = Math.random()*16 | 0;
9 if(i === 8 || i === 12 || i === 16 || i === 20) {
12 uuid += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random) ).toString(16);
16 function Todo(title) {
19 this.completed = false;
25 getTodos: function() {
26 return privateClient.getAll('todos/');
28 addTodo: function(text) {
29 var todo = new Todo(text);
30 privateClient.storeObject('todo-list-item', 'todos/'+todo.id, todo);
32 setTodo: function(id, todo) {
33 privateClient.storeObject('todo-list-item', 'todos/'+id, todo);
35 setTodoText: function(id, text) {
36 privateClient.getObject('todos/'+id).then(function(obj) {
38 privateClient.storeObject('todo-list-item', 'todos/'+id, obj);
40 console.log('error in setTodoText', err);
43 setTodoCompleted: function(id, value) {
44 privateClient.getObject('todos/'+id).then(function(obj) {
45 obj.completed = value;
46 privateClient.storeObject('todo-list-item', 'todos/'+id, obj);
48 console.log('error in setTodoCompleted', err);
51 setAllTodosCompleted: function(value) {
52 privateClient.getAll('todos/').then(function(objs) {
54 if(objs[i].completed != value) {
55 objs[i].completed = value;
56 privateClient.storeObject('todo-list-item', 'todos/'+i, objs[i]);
60 console.log('error in setAllTodosCompleted', err);
63 removeTodo: function(id) {
64 privateClient.remove('todos/'+id);
66 removeAllCompletedTodos: function() {
67 privateClient.getAll('todos/').then(function(objs) {
69 if(objs[i].completed) {
70 privateClient.remove('todos/'+i);
74 console.log('error in removeAllCompletedTodos', err);
77 onChange: function( cb ) {
78 privateClient.on('change', function(event) {
79 cb(event.oldValue, event.newValue);