From e5d7002160d75238514330afcec3f8b2e545fc6c Mon Sep 17 00:00:00 2001 From: Ihor Chumak Date: Wed, 10 Dec 2014 14:19:15 +0200 Subject: [PATCH 1/3] Added destroy method Added destroy method to uninitialize plugin --- src/jquery.fs.dropper.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/jquery.fs.dropper.js b/src/jquery.fs.dropper.js index ce28abd..ace7a18 100644 --- a/src/jquery.fs.dropper.js +++ b/src/jquery.fs.dropper.js @@ -34,6 +34,23 @@ var pub = { + /** + * @method + * @name destroy + * @description Destroys plugin + * @example $().dropper("destroy"); + */ + destroy: function () { + var $items = $(this); + + // Apply to each element + for (var i = 0, count = $items.length; i < count; i++) { + _destroy($items.eq(i)); + } + + return (typeof this === 'object') ? $(this) : true; + }, + /** * @method * @name defaults @@ -111,6 +128,22 @@ data.$input.on("change.dropper", data, _onChange); } + + /** + * @method private + * @name _destroy + * @description Destroys each instance + * @param $nav [jQuery object] "Target jQuery object" + */ + function _destroy($dropper) { + $dropper.find(".dropper-input").off("change.dropper", _onChange); + $dropper.off("click.dropper", ".dropper-dropzone", _onClick) + .off("dragenter.dropper", _onDragEnter) + .off("dragover.dropper", _onDragOver) + .off("dragleave.dropper", _onDragOut) + .off("drop.dropper", ".dropper-dropzone", _onDrop); + $dropper.removeClass("dropper").html(""); + } /** * @method private From 2b22c146c410266aa3faad20936bdbfdee84abdb Mon Sep 17 00:00:00 2001 From: Ihor Chumak Date: Wed, 10 Dec 2014 14:25:27 +0200 Subject: [PATCH 2/3] Fixed styling Fixed styling according to an original code --- src/jquery.fs.dropper.js | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/jquery.fs.dropper.js b/src/jquery.fs.dropper.js index ace7a18..3faf0b3 100644 --- a/src/jquery.fs.dropper.js +++ b/src/jquery.fs.dropper.js @@ -40,16 +40,16 @@ * @description Destroys plugin * @example $().dropper("destroy"); */ - destroy: function () { - var $items = $(this); - + destroy: function () { + var $items = $(this); + // Apply to each element for (var i = 0, count = $items.length; i < count; i++) { _destroy($items.eq(i)); } - - return (typeof this === 'object') ? $(this) : true; - }, + + return (typeof this === 'object') ? $(this) : true; + }, /** * @method @@ -83,7 +83,6 @@ _build($items.eq(i), opts); } } - return $items; } @@ -135,15 +134,15 @@ * @description Destroys each instance * @param $nav [jQuery object] "Target jQuery object" */ - function _destroy($dropper) { + function _destroy($dropper) { $dropper.find(".dropper-input").off("change.dropper", _onChange); - $dropper.off("click.dropper", ".dropper-dropzone", _onClick) + $dropper.off("click.dropper", ".dropper-dropzone", _onClick) .off("dragenter.dropper", _onDragEnter) .off("dragover.dropper", _onDragOver) .off("dragleave.dropper", _onDragOut) .off("drop.dropper", ".dropper-dropzone", _onDrop); - $dropper.removeClass("dropper").html(""); - } + $dropper.removeClass("dropper").html(""); + } /** * @method private From 3811b9b4d296cab094446a56cce28683672a7e12 Mon Sep 17 00:00:00 2001 From: Ihor Chumak Date: Thu, 11 Dec 2014 11:44:52 +0200 Subject: [PATCH 3/3] Updated files with grunt Updated all files using grunt --- jquery.fs.dropper.css | 2 +- jquery.fs.dropper.js | 36 ++++++++++++++++++++++++++++++++++-- jquery.fs.dropper.min.css | 2 +- jquery.fs.dropper.min.js | 4 ++-- 4 files changed, 38 insertions(+), 6 deletions(-) diff --git a/jquery.fs.dropper.css b/jquery.fs.dropper.css index 42523a0..dd3c64f 100644 --- a/jquery.fs.dropper.css +++ b/jquery.fs.dropper.css @@ -1,5 +1,5 @@ /* - * Dropper v1.0.1 - 2014-11-25 + * Dropper v1.0.1 - 2014-12-11 * A jQuery plugin for simple drag and drop uploads. Part of the Formstone Library. * http://formstone.it/dropper/ * diff --git a/jquery.fs.dropper.js b/jquery.fs.dropper.js index a72c123..24a3e18 100644 --- a/jquery.fs.dropper.js +++ b/jquery.fs.dropper.js @@ -1,5 +1,5 @@ /* - * Dropper v1.0.1 - 2014-11-25 + * Dropper v1.0.1 - 2014-12-11 * A jQuery plugin for simple drag and drop uploads. Part of the Formstone Library. * http://formstone.it/dropper/ * @@ -42,6 +42,23 @@ var pub = { + /** + * @method + * @name destroy + * @description Destroys plugin + * @example $().dropper("destroy"); + */ + destroy: function () { + var $items = $(this); + + // Apply to each element + for (var i = 0, count = $items.length; i < count; i++) { + _destroy($items.eq(i)); + } + + return (typeof this === 'object') ? $(this) : true; + }, + /** * @method * @name defaults @@ -74,7 +91,6 @@ _build($items.eq(i), opts); } } - return $items; } @@ -119,6 +135,22 @@ data.$input.on("change.dropper", data, _onChange); } + + /** + * @method private + * @name _destroy + * @description Destroys each instance + * @param $nav [jQuery object] "Target jQuery object" + */ + function _destroy($dropper) { + $dropper.find(".dropper-input").off("change.dropper", _onChange); + $dropper.off("click.dropper", ".dropper-dropzone", _onClick) + .off("dragenter.dropper", _onDragEnter) + .off("dragover.dropper", _onDragOver) + .off("dragleave.dropper", _onDragOut) + .off("drop.dropper", ".dropper-dropzone", _onDrop); + $dropper.removeClass("dropper").html(""); + } /** * @method private diff --git a/jquery.fs.dropper.min.css b/jquery.fs.dropper.min.css index 25f9868..7c2f5db 100644 --- a/jquery.fs.dropper.min.css +++ b/jquery.fs.dropper.min.css @@ -1,5 +1,5 @@ /* - * Dropper v1.0.1 - 2014-11-25 + * Dropper v1.0.1 - 2014-12-11 * A jQuery plugin for simple drag and drop uploads. Part of the Formstone Library. * http://formstone.it/dropper/ * diff --git a/jquery.fs.dropper.min.js b/jquery.fs.dropper.min.js index ff2765e..2c7c438 100644 --- a/jquery.fs.dropper.min.js +++ b/jquery.fs.dropper.min.js @@ -1,9 +1,9 @@ /* - * Dropper v1.0.1 - 2014-11-25 + * Dropper v1.0.1 - 2014-12-11 * A jQuery plugin for simple drag and drop uploads. Part of the Formstone Library. * http://formstone.it/dropper/ * * Copyright 2014 Ben Plum; MIT Licensed */ -!function(a,b){"use strict";function c(b){var c=a(this);if(n){b=a.extend({},o,b);for(var e=0,f=c.length;f>e;e++)d(c.eq(e),b)}return c}function d(b,c){c=a.extend({},c,b.data("dropper-options"));var d="";d+='
',d+=c.label,d+="
",d+='1&&(d+=" multiple"),d+=">",b.addClass("dropper").append(d);var k=a.extend({$dropper:b,$input:b.find(".dropper-input"),queue:[],total:0,uploading:!1},c);b.on("click.dropper",".dropper-dropzone",k,e).on("dragenter.dropper",k,g).on("dragover.dropper",k,h).on("dragleave.dropper",k,i).on("drop.dropper",".dropper-dropzone",k,j).data("dropper",k),k.$input.on("change.dropper",k,f)}function e(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$input.trigger("click")}function f(a){a.stopPropagation(),a.preventDefault();var b=a.data,c=b.$input[0].files;c.length&&k(b,c)}function g(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$dropper.addClass("dropping")}function h(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$dropper.addClass("dropping")}function i(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$dropper.removeClass("dropping")}function j(a){a.preventDefault();var b=a.data,c=a.originalEvent.dataTransfer.files;b.$dropper.removeClass("dropping"),k(b,c)}function k(c,d){for(var e=[],f=0;f=c.maxQueue)return;f++}0===d&&(a(b).off("beforeunload.dropper"),c.uploading=!1,c.$dropper.trigger("complete.dropper"))}function m(b,c,d){c.size>=b.maxSize?(c.error=!0,b.$dropper.trigger("fileError.dropper",[c,"Too large"]),l(b)):(c.started=!0,c.transfer=a.ajax({url:b.action,data:d,type:"POST",contentType:!1,processData:!1,cache:!1,xhr:function(){var d=a.ajaxSettings.xhr();return d.upload&&d.upload.addEventListener("progress",function(a){var d=0,e=a.loaded||a.position,f=a.total;a.lengthComputable&&(d=Math.ceil(e/f*100)),b.$dropper.trigger("fileProgress.dropper",[c,d])},!1),d},beforeSend:function(){b.$dropper.trigger("fileStart.dropper",[c])},success:function(a){c.complete=!0,b.$dropper.trigger("fileComplete.dropper",[c,a]),l(b)},error:function(a,d,e){c.error=!0,b.$dropper.trigger("fileError.dropper",[c,e]),l(b)}}))}var n=b.File&&b.FileReader&&b.FileList,o={action:"",label:"Drag and drop files or click to select",maxQueue:2,maxSize:5242880,postData:{},postKey:"file"},p={defaults:function(b){return o=a.extend(o,b||{}),"object"==typeof this?a(this):!0}};a.fn.dropper=function(a){return p[a]?p[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?this:c.apply(this,arguments)},a.dropper=function(a){"defaults"===a&&p.defaults.apply(this,Array.prototype.slice.call(arguments,1))}}(jQuery,window); \ No newline at end of file +!function(a,b){"use strict";function c(b){var c=a(this);if(o){b=a.extend({},p,b);for(var e=0,f=c.length;f>e;e++)d(c.eq(e),b)}return c}function d(b,c){c=a.extend({},c,b.data("dropper-options"));var d="";d+='
',d+=c.label,d+="
",d+='1&&(d+=" multiple"),d+=">",b.addClass("dropper").append(d);var e=a.extend({$dropper:b,$input:b.find(".dropper-input"),queue:[],total:0,uploading:!1},c);b.on("click.dropper",".dropper-dropzone",e,f).on("dragenter.dropper",e,h).on("dragover.dropper",e,i).on("dragleave.dropper",e,j).on("drop.dropper",".dropper-dropzone",e,k).data("dropper",e),e.$input.on("change.dropper",e,g)}function e(a){a.find(".dropper-input").off("change.dropper",g),a.off("click.dropper",".dropper-dropzone",f).off("dragenter.dropper",h).off("dragover.dropper",i).off("dragleave.dropper",j).off("drop.dropper",".dropper-dropzone",k),a.removeClass("dropper").html("")}function f(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$input.trigger("click")}function g(a){a.stopPropagation(),a.preventDefault();var b=a.data,c=b.$input[0].files;c.length&&l(b,c)}function h(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$dropper.addClass("dropping")}function i(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$dropper.addClass("dropping")}function j(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$dropper.removeClass("dropping")}function k(a){a.preventDefault();var b=a.data,c=a.originalEvent.dataTransfer.files;b.$dropper.removeClass("dropping"),l(b,c)}function l(c,d){for(var e=[],f=0;f=c.maxQueue)return;f++}0===d&&(a(b).off("beforeunload.dropper"),c.uploading=!1,c.$dropper.trigger("complete.dropper"))}function n(b,c,d){c.size>=b.maxSize?(c.error=!0,b.$dropper.trigger("fileError.dropper",[c,"Too large"]),m(b)):(c.started=!0,c.transfer=a.ajax({url:b.action,data:d,type:"POST",contentType:!1,processData:!1,cache:!1,xhr:function(){var d=a.ajaxSettings.xhr();return d.upload&&d.upload.addEventListener("progress",function(a){var d=0,e=a.loaded||a.position,f=a.total;a.lengthComputable&&(d=Math.ceil(e/f*100)),b.$dropper.trigger("fileProgress.dropper",[c,d])},!1),d},beforeSend:function(){b.$dropper.trigger("fileStart.dropper",[c])},success:function(a){c.complete=!0,b.$dropper.trigger("fileComplete.dropper",[c,a]),m(b)},error:function(a,d,e){c.error=!0,b.$dropper.trigger("fileError.dropper",[c,e]),m(b)}}))}var o=b.File&&b.FileReader&&b.FileList,p={action:"",label:"Drag and drop files or click to select",maxQueue:2,maxSize:5242880,postData:{},postKey:"file"},q={destroy:function(){for(var b=a(this),c=0,d=b.length;d>c;c++)e(b.eq(c));return"object"==typeof this?a(this):!0},defaults:function(b){return p=a.extend(p,b||{}),"object"==typeof this?a(this):!0}};a.fn.dropper=function(a){return q[a]?q[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?this:c.apply(this,arguments)},a.dropper=function(a){"defaults"===a&&q.defaults.apply(this,Array.prototype.slice.call(arguments,1))}}(jQuery,window); \ No newline at end of file