Skip to content

Instantly share code, notes, and snippets.

@mmirolim
Created July 1, 2014 22:49
Show Gist options
  • Save mmirolim/b1a241053fadd41ce9ab to your computer and use it in GitHub Desktop.
Save mmirolim/b1a241053fadd41ce9ab to your computer and use it in GitHub Desktop.
// Enter the nodes.
// set different colors for task status
var nodeEnter = node.enter().append("g")
.attr("class", function (d) {
return "node" + " " + d.status;
})
.attr("transform", function(d) {
return "translate(" + d.y + "," + d.x + ")"; });
nodeEnter.append("circle")
.attr("r", 10);
//
<style>
.node circle {
stroke: none;
}
.node.inbox circle {
fill: rgb(82, 133, 243);
}
.node.active circle {
fill: orange;
}
.node.complete circle {
fill: rgb(36, 219, 36);
}
</style>
//
/**
* Caching service via pouchDb
* @link http://pouchdb.com/
* @author Mirolim Mirzakhmedov mirolim777 at gmail.com
* @date 01.07.2014
*/
app.factory('CacheDB', ['$http', 'API',
function ($http, API) {
var db = new PouchDB('cachedb');
return {
put: function (obj, id) {
db.put(obj, id)
.then(function (r) {
return r;
});
},
get: function (id) {
db.get(id)
.then(function (r) {
console.log(r, 'Result from get');
return r;
});
},
query: function (map) {
db.query({map: map}, {include_docs: true})
.then(function (r) {
return r;
})
},
allDocs: function (startKey, endKey, desc) {
db.allDocs({startkey: startKey, endkey: endKey, descending: desc})
.then(function (r) {
console.log(r, 'Results from allDocs');
return r;
})
}
}
}
]);
// task service
save: function (task) {
var deffered = $q.defer();
// backup changes
var timestamp = Date.now();
if (!task.id) {
CacheDB.put(task, "backUpChanges/" + timestamp + "/00/CREATE");
} else {
CacheDB.put(task, "backUpChanges/" + timestamp + "/" + task.id + "/UPDATE");
}
// if not connected return promise so users can work offline
if (!socket.socket.connected) {
// set task id to something we can find
task.id = timestamp;
task.synced = false;
deffered.resolve(task);
console.log(task);
}
if (!task.id) {
task.status = STATUS.inbox.name;
socket.post(API.tasks, task, function (r) {
deffered.resolve(r);
}, function (e) {
deffered.reject(e);
});
} else {
delete task.$$hashKey;
delete task.dueDateOpened;
socket.put(API.tasks + '/' + task.id, task, function (r) {
deffered.resolve(r);
}, function (e, status) {
deffered.reject(e, status);
});
}
return deffered.promise;
},
delete: function (task) {
// backup changes
CacheDB.put(task, "backUpChanges/" + Date.now() + "/" + task.id + "/DELETE");
var deffered = $q.defer();
socket.delete(API.tasks + '/' + task.id, function (r) {
deffered.resolve(r);
}, function (e, status) {
deffered.reject(e, status);
});
return deffered.promise;
},
//
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment