Created
February 6, 2015 18:26
-
-
Save swestner/1a0eea718a71f07b1d77 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Created by steve.westner on 2015-02-06. | |
*/ | |
function pushDownDecorator(){ | |
return { | |
ok: function (target, $pushDownInstance) { | |
target.ok = $pushDownInstance.close; | |
}, | |
cancel: function (target, $pushDownInstance) { | |
target.close = $pushDownInstance.close; | |
}, | |
all : function (target, $pushDownInstance){ | |
this.ok(target); | |
this.close(target); | |
} | |
} | |
} | |
function arrayDecorator(){ | |
return { | |
page : function(array, size, current){ | |
array.page.size = size || 10; | |
array.page.current = current || 1; | |
array.page.count = function(){ | |
return Math.ceil(array.length / array.page.size) | |
} | |
array.page.valid = function(page){ | |
if(page > array.page.count()){return false;} | |
if(page < 1){return false;} | |
return true; | |
} | |
array.page.get = function(page){ | |
if(!array.page.valid(page)){ | |
throw new Error(page + " is not a valid page. Page should be a number ranging between 1 and " + array.page.count()) | |
} | |
array.page.current = page; | |
return _.chain(array) | |
.rest(array.page.size * page) | |
.first(array.page.size) | |
.value(); | |
} | |
}, | |
toggle : function(array, property){ | |
var pname = property || "activated"; | |
array.toggle = function(item){ | |
return _.chain(array) | |
.map(function(d){ | |
d[pname] = false; | |
return d; | |
}) | |
.find(function(d){return d == item;}) | |
.value() | |
.activated = true; | |
} | |
} | |
} | |
function rudDecorator(){ | |
return { | |
save: { | |
regular : function (target, mapFn, deferedSaveFn, preFn, postFn) | |
{ | |
target.save = function (item) { | |
var pre = preFn || function(){}; | |
var post = postFn || function(){}; | |
if (target.saving) { | |
return; | |
} | |
target.saving = true; | |
var mapped = mapFn(item); | |
if(!mapped){return;} | |
pre(mapped); | |
return deferedSaveFn(item).then(function(d){ | |
post(d) | |
}); | |
} | |
}, | |
animated : function(target, mapFn, existingKeys){ | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment