From 65a98afc2da7a2124b5bb245423f9a47ec8ba852 Mon Sep 17 00:00:00 2001 From: Pascal Hartig Date: Sun, 4 Aug 2013 15:21:56 +0200 Subject: [PATCH] v0.3.1 --- CHANGELOG.md | 8 ++++++++ angular-masonry.js | 13 +++++++------ angular-masonry.min.js | 4 ++-- bower.json | 2 +- package.json | 2 +- 5 files changed, 19 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 637b9aa..1f05e6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ + +### v0.3.1 (2013-08-04) + + +#### Features + +* **app:** expose scheduleMasonry(Once) methods ([0fad6552](http://github.com/passy/angular-masonry/commit/0fad65527af6f1dd11ebc2b3bb2deb03ebaef34c)) + ## v0.3.0 (2013-08-04) diff --git a/angular-masonry.js b/angular-masonry.js index 920fe46..8137ca5 100644 --- a/angular-masonry.js +++ b/angular-masonry.js @@ -1,5 +1,5 @@ /*! - * angular-masonry 0.3.0 + * angular-masonry 0.3.1 * Pascal Hartig, weluse GmbH, http://weluse.de/ * License: MIT */ @@ -11,22 +11,23 @@ var bricks = {}; var schedule = []; var destroyed = false; + var self = this; var timeout = null; - function scheduleMasonryOnce() { + this.scheduleMasonryOnce = function scheduleMasonryOnce() { var args = arguments; var found = schedule.filter(function (item) { return item[0] === args[0]; }).length > 0; if (!found) { - scheduleMasonry.apply(null, arguments); + this.scheduleMasonry.apply(null, arguments); } } // Make sure it's only executed once within a reasonable time-frame in // case multiple elements are removed or added at once. - function scheduleMasonry() { + this.scheduleMasonry = function scheduleMasonry() { if (timeout) { $timeout.cancel(timeout); } @@ -68,7 +69,7 @@ // Keep track of added elements. bricks[id] = true; $element.masonry('appended', element, true); - scheduleMasonryOnce('layout'); + self.scheduleMasonryOnce('layout'); } } @@ -82,7 +83,7 @@ delete bricks[id]; $element.masonry('remove', element); - scheduleMasonryOnce('layout'); + this.scheduleMasonryOnce('layout'); }; this.destroy = function destroy() { diff --git a/angular-masonry.min.js b/angular-masonry.min.js index 947c4c0..5412e80 100644 --- a/angular-masonry.min.js +++ b/angular-masonry.min.js @@ -1,6 +1,6 @@ /*! - * angular-masonry 0.3.0 + * angular-masonry 0.3.1 * Pascal Hartig, weluse GmbH, http://weluse.de/ * License: MIT */ -!function(){"use strict";angular.module("wu.masonry",[]).controller("MasonryCtrl",function(a,b,c){function d(){var a=arguments,b=h.filter(function(b){return b[0]===a[0]}).length>0;b||e.apply(null,arguments)}function e(){j&&c.cancel(j),h.push([].slice.call(arguments)),j=c(function(){i||(h.forEach(function(a){b.masonry.apply(b,a)}),h=[])},30)}function f(a){a.addClass("loaded")}var g={},h=[],i=!1,j=null;this.appendBrick=function(a,c){function e(){0===Object.keys(g).length&&b.masonry("resize"),void 0===g[c]&&(f(a),g[c]=!0,b.masonry("appended",a,!0),d("layout"))}i||a.imagesLoaded(e)},this.removeBrick=function(a,c){i||(delete g[a],b.masonry("remove",c),d("layout"))},this.destroy=function(){i=!0,b.data("masonry")&&b.masonry("destroy"),g=[]}}).directive("masonry",function(){return{restrict:"AE",controller:"MasonryCtrl",link:function(a,b,c,d){var e=a.$eval(c.options),f=angular.extend(e||{},{itemSelector:c.itemSelector||".masonry-brick",columnWidth:parseInt(c.columnWidth,10)});b.masonry(f),a.$on("$destroy",d.destroy)}}}).directive("masonryBrick",function(){return{restrict:"AC",require:"^masonry",link:function(a,b,c,d){var e=a.$id;d.appendBrick(b,e),b.on("$destroy",function(){d.removeBrick(e,b)})}}})}(); \ No newline at end of file +!function(){"use strict";angular.module("wu.masonry",[]).controller("MasonryCtrl",function(a,b,c){function d(a){a.addClass("loaded")}var e={},f=[],g=!1,h=this,i=null;this.scheduleMasonryOnce=function(){var a=arguments,b=f.filter(function(b){return b[0]===a[0]}).length>0;b||this.scheduleMasonry.apply(null,arguments)},this.scheduleMasonry=function(){i&&c.cancel(i),f.push([].slice.call(arguments)),i=c(function(){g||(f.forEach(function(a){b.masonry.apply(b,a)}),f=[])},30)},this.appendBrick=function(a,c){function f(){0===Object.keys(e).length&&b.masonry("resize"),void 0===e[c]&&(d(a),e[c]=!0,b.masonry("appended",a,!0),h.scheduleMasonryOnce("layout"))}g||a.imagesLoaded(f)},this.removeBrick=function(a,c){g||(delete e[a],b.masonry("remove",c),this.scheduleMasonryOnce("layout"))},this.destroy=function(){g=!0,b.data("masonry")&&b.masonry("destroy"),e=[]}}).directive("masonry",function(){return{restrict:"AE",controller:"MasonryCtrl",link:function(a,b,c,d){var e=a.$eval(c.options),f=angular.extend(e||{},{itemSelector:c.itemSelector||".masonry-brick",columnWidth:parseInt(c.columnWidth,10)});b.masonry(f),a.$on("$destroy",d.destroy)}}}).directive("masonryBrick",function(){return{restrict:"AC",require:"^masonry",link:function(a,b,c,d){var e=a.$id;d.appendBrick(b,e),b.on("$destroy",function(){d.removeBrick(e,b)})}}})}(); \ No newline at end of file diff --git a/bower.json b/bower.json index 7061998..7438813 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "angular-masonry", "description": "An AngularJS directive for Masonry.", - "version": "0.3.0", + "version": "0.3.1", "main": "./angular-masonry.js", "ignore": [ "**/.*", diff --git a/package.json b/package.json index c8c7859..9f14a14 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-masonry", - "version": "0.3.0", + "version": "0.3.1", "devDependencies": { "grunt-contrib-uglify": "~0.2.2", "grunt": "~0.4.1",