From 5fa235a556d384117840b7088575012dcd1787dd Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 17 Nov 2014 15:46:39 -0500 Subject: polygonal lasso --- assets/javascripts/util/permissions.js | 49 ++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 assets/javascripts/util/permissions.js (limited to 'assets/javascripts/util/permissions.js') diff --git a/assets/javascripts/util/permissions.js b/assets/javascripts/util/permissions.js new file mode 100644 index 0000000..9e3ef4d --- /dev/null +++ b/assets/javascripts/util/permissions.js @@ -0,0 +1,49 @@ + +var Permissions = function(ops){ + var base = this + base.keys = _.keys(ops) + base.keys.forEach(function(op){ + base[op] = ops[op] + }) +} + +Permissions.prototype.toggle = function (key) { + var base = this + var state = ! base[key] + base.keys.forEach(function(op){ + base[op] = op == key ? state : false + }) + return state +} + +Permissions.prototype.assign = function (key, state) { + var base = this + base.keys.forEach(function(op){ + base[op] = op == key ? state : false + }) + return state +} + +Permissions.prototype.add = function (key) { + var base = this + base[key] = true +} + +Permissions.prototype.remove = function (key) { + var base = this + base[key] = false +} + +Permissions.prototype.clear = function () { + var base = this + base.keys.forEach(function(op){ + base[op] = false + }) +} + +Permissions.prototype.log = function () { + var base = this + base.keys.forEach(function(op){ + console.log(op, base[op]) + }) +} \ No newline at end of file -- cgit v1.2.3-70-g09d2