dropzonejs-rails 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NjA5NjgxODJhNTE2OTc2ZTEyMWViNWJlMzU2ZWJkMzE0NTBlMDk5Yg==
4
+ YzM0MjkzNDdiMDU2YTNkMzQ2Y2U0ZjY2MzJmZjYwZWE2ZDg2MGNhNQ==
5
5
  data.tar.gz: !binary |-
6
- MTZkYTE1ODU2N2MyYzJkNzBlZDY1MjA1NjdjMjA0MjQ2YWY2YzNlMw==
6
+ MDg3OTBlYjM1MzA5OTRmMTBlYzkzNTljZmQ2NjJlYWJhMzY4ZTk2ZQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- YWY5NmIyNGQwNTRhNzI4NDBjMTUxN2RmMjliNTEyZTYyNGQ3MzZmMGNkNGNh
10
- ZDBiMjY5ZTc5M2JlZTcwYTUzMjZmZjQzZTlmZTBkMjNjYTFiMDkxM2FmZDJh
11
- MThlNjJlZjE5NjlkYjFiNjE2MzkyZmY1OGZiNzhhYTQyMWExNDU=
9
+ YjI0MWFkODhlZTMxOTRiNWI2ZWNkOTdjOWQ0NzQzY2ZjODMzZWI4MjZhOGY5
10
+ OTEzZjU1MTBkOGM2Y2UwMmQ0MDI0MjU2MWJjN2UyZDc2NzA4MjEzZjI5NWNl
11
+ ODliOTMxM2ExMDJkY2NlZmE2NzM1MDU1YjEwZWNkZmZhMDg1MWE=
12
12
  data.tar.gz: !binary |-
13
- NWY3NjI2N2JjNGE3MDQ4MjYxOThjMzhlMmM4NGNjNGJmNDNjYjE4NGQ5ZTUz
14
- OGY0MzBhNjkyYzc5MTNiMjZkYjdjNzhmZTYwYTA4NzNiOTIwYzRjZmMwMmRl
15
- OTJlMDdmZjg5Yjc3NmU2YjFjMGQ5NjVlMjI1NzUxMGZiZjgzNWM=
13
+ OTQzN2M4YjQ0YmMyNDk4ZTg3YTY0MDJmMWNiOGYxMzg0ZTQ1NjdiZTQ2NTIy
14
+ ZGMyNWE3YjFhZWU0YTQwMjc1YTM1ODUxYmUyNTUyNWFhNDhmYjJmYWE5MDA0
15
+ MjJiYWYxOGQ5YzY2ZDMwYjQzYjBjMmNmNGU2MjBkN2VlOWE1ODA=
data/README.md CHANGED
@@ -47,7 +47,7 @@ Go to [this secret place](https://github.com/ncuesta/dropzonejs-rails/issues).
47
47
  **DO NOT - I repeat - DO NOT bump version numbers.** Unless you **really** need to.
48
48
 
49
49
 
50
- ### Getting the latest version of Raptor Editor
50
+ ### Getting the latest version of Dropzone
51
51
 
52
52
  1. Update `DropzonejsRails::DROPZONE_VERSION` to the newest version of Dropzone.
53
53
  1. Do a `rake get` - it'll download the file four you.
@@ -1,4 +1,4 @@
1
1
  module DropzonejsRails
2
- VERSION = '0.1.4'
3
- DROPZONE_VERSION = '2.0.11'
2
+ VERSION = '0.1.5'
3
+ DROPZONE_VERSION = '2.0.12'
4
4
  end
@@ -443,6 +443,7 @@ require.register("dropzone/lib/dropzone.js", function(exports, require, module){
443
443
  init: function() {
444
444
  return noop;
445
445
  },
446
+ forceFallback: false,
446
447
  fallback: function() {
447
448
  var child, messageElement, span, _i, _len, _ref;
448
449
 
@@ -532,7 +533,7 @@ require.register("dropzone/lib/dropzone.js", function(exports, require, module){
532
533
  };
533
534
 
534
535
  function Dropzone(element, options) {
535
- var elementId, elementOptions, extend, fallback, _ref;
536
+ var elementOptions, extend, fallback, _ref;
536
537
 
537
538
  this.element = element;
538
539
  this.version = Dropzone.version;
@@ -543,12 +544,12 @@ require.register("dropzone/lib/dropzone.js", function(exports, require, module){
543
544
  if (!(this.element && (this.element.nodeType != null))) {
544
545
  throw new Error("Invalid dropzone element.");
545
546
  }
546
- if (Dropzone.forElement(this.element)) {
547
+ if (this.element.dropzone) {
547
548
  throw new Error("Dropzone already attached.");
548
549
  }
549
550
  Dropzone.instances.push(this);
550
- elementId = this.element.id;
551
- elementOptions = (_ref = (elementId ? Dropzone.options[camelize(elementId)] : void 0)) != null ? _ref : {};
551
+ element.dropzone = this;
552
+ elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {};
552
553
  extend = function() {
553
554
  var key, object, objects, target, val, _i, _len;
554
555
 
@@ -570,7 +571,7 @@ require.register("dropzone/lib/dropzone.js", function(exports, require, module){
570
571
  throw new Error("No URL provided.");
571
572
  }
572
573
  this.options.method = this.options.method.toUpperCase();
573
- if (!Dropzone.isBrowserSupported()) {
574
+ if (this.options.forceFallback || !Dropzone.isBrowserSupported()) {
574
575
  return this.options.fallback.call(this);
575
576
  }
576
577
  if ((fallback = this.getExistingFallback()) && fallback.parentNode) {
@@ -588,6 +589,18 @@ require.register("dropzone/lib/dropzone.js", function(exports, require, module){
588
589
  } else {
589
590
  this.previewsContainer = this.element;
590
591
  }
592
+ if (this.options.clickable) {
593
+ if (this.options.clickable === true) {
594
+ this.clickableElement = this.element;
595
+ } else if (typeof this.options.clickable === "string") {
596
+ this.clickableElement = document.querySelector(this.options.clickable);
597
+ } else if (this.options.clickable.nodeType != null) {
598
+ this.clickableElement = this.options.clickable;
599
+ }
600
+ if (!this.clickableElement) {
601
+ throw new Error("Invalid `clickable` element provided. Please set it to `true`, a plain HTML element or a valid CSS selector.");
602
+ }
603
+ }
591
604
  this.init();
592
605
  }
593
606
 
@@ -601,7 +614,7 @@ require.register("dropzone/lib/dropzone.js", function(exports, require, module){
601
614
  if (this.element.classList.contains("dropzone") && !this.element.querySelector(".message")) {
602
615
  this.element.appendChild(Dropzone.createElement("<div class=\"default message\"><span>" + this.options.dictDefaultMessage + "</span></div>"));
603
616
  }
604
- if (this.options.clickable) {
617
+ if (this.clickableElement) {
605
618
  setupHiddenFileInput = function() {
606
619
  if (_this.hiddenFileInput) {
607
620
  document.body.removeChild(_this.hiddenFileInput);
@@ -641,38 +654,47 @@ require.register("dropzone/lib/dropzone.js", function(exports, require, module){
641
654
  return e.returnValue = false;
642
655
  }
643
656
  };
644
- this.listeners = {
645
- "dragstart": function(e) {
646
- return _this.emit("dragstart", e);
647
- },
648
- "dragenter": function(e) {
649
- noPropagation(e);
650
- return _this.emit("dragenter", e);
651
- },
652
- "dragover": function(e) {
653
- noPropagation(e);
654
- return _this.emit("dragover", e);
655
- },
656
- "dragleave": function(e) {
657
- return _this.emit("dragleave", e);
658
- },
659
- "drop": function(e) {
660
- noPropagation(e);
661
- _this.drop(e);
662
- return _this.emit("drop", e);
663
- },
664
- "dragend": function(e) {
665
- return _this.emit("dragend", e);
666
- },
667
- "click": function(evt) {
668
- if (!_this.options.clickable) {
669
- return;
670
- }
671
- if (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(".message"))) {
672
- return _this.hiddenFileInput.click();
657
+ this.listeners = [
658
+ {
659
+ element: this.element,
660
+ events: {
661
+ "dragstart": function(e) {
662
+ return _this.emit("dragstart", e);
663
+ },
664
+ "dragenter": function(e) {
665
+ noPropagation(e);
666
+ return _this.emit("dragenter", e);
667
+ },
668
+ "dragover": function(e) {
669
+ noPropagation(e);
670
+ return _this.emit("dragover", e);
671
+ },
672
+ "dragleave": function(e) {
673
+ return _this.emit("dragleave", e);
674
+ },
675
+ "drop": function(e) {
676
+ noPropagation(e);
677
+ _this.drop(e);
678
+ return _this.emit("drop", e);
679
+ },
680
+ "dragend": function(e) {
681
+ return _this.emit("dragend", e);
682
+ }
673
683
  }
674
684
  }
675
- };
685
+ ];
686
+ if (this.clickableElement) {
687
+ this.listeners.push({
688
+ element: this.clickableElement,
689
+ events: {
690
+ "click": function(evt) {
691
+ if ((_this.clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(".message")))) {
692
+ return _this.hiddenFileInput.click();
693
+ }
694
+ }
695
+ }
696
+ });
697
+ }
676
698
  this.enable();
677
699
  return this.options.init.call(this);
678
700
  };
@@ -722,31 +744,51 @@ require.register("dropzone/lib/dropzone.js", function(exports, require, module){
722
744
  };
723
745
 
724
746
  Dropzone.prototype.setupEventListeners = function() {
725
- var event, listener, _ref, _results;
747
+ var elementListeners, event, listener, _i, _len, _ref, _results;
726
748
 
727
749
  _ref = this.listeners;
728
750
  _results = [];
729
- for (event in _ref) {
730
- listener = _ref[event];
731
- _results.push(this.element.addEventListener(event, listener, false));
751
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
752
+ elementListeners = _ref[_i];
753
+ _results.push((function() {
754
+ var _ref1, _results1;
755
+
756
+ _ref1 = elementListeners.events;
757
+ _results1 = [];
758
+ for (event in _ref1) {
759
+ listener = _ref1[event];
760
+ _results1.push(elementListeners.element.addEventListener(event, listener, false));
761
+ }
762
+ return _results1;
763
+ })());
732
764
  }
733
765
  return _results;
734
766
  };
735
767
 
736
768
  Dropzone.prototype.removeEventListeners = function() {
737
- var event, listener, _ref, _results;
769
+ var elementListeners, event, listener, _i, _len, _ref, _results;
738
770
 
739
771
  _ref = this.listeners;
740
772
  _results = [];
741
- for (event in _ref) {
742
- listener = _ref[event];
743
- _results.push(this.element.removeEventListener(event, listener, false));
773
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
774
+ elementListeners = _ref[_i];
775
+ _results.push((function() {
776
+ var _ref1, _results1;
777
+
778
+ _ref1 = elementListeners.events;
779
+ _results1 = [];
780
+ for (event in _ref1) {
781
+ listener = _ref1[event];
782
+ _results1.push(elementListeners.element.removeEventListener(event, listener, false));
783
+ }
784
+ return _results1;
785
+ })());
744
786
  }
745
787
  return _results;
746
788
  };
747
789
 
748
790
  Dropzone.prototype.disable = function() {
749
- if (this.options.clickable) {
791
+ if (this.clickableElement === this.element) {
750
792
  this.element.classList.remove("clickable");
751
793
  }
752
794
  this.removeEventListeners();
@@ -755,7 +797,7 @@ require.register("dropzone/lib/dropzone.js", function(exports, require, module){
755
797
  };
756
798
 
757
799
  Dropzone.prototype.enable = function() {
758
- if (this.options.clickable) {
800
+ if (this.clickableElement === this.element) {
759
801
  this.element.classList.add("clickable");
760
802
  }
761
803
  return this.setupEventListeners();
@@ -1012,26 +1054,68 @@ require.register("dropzone/lib/dropzone.js", function(exports, require, module){
1012
1054
 
1013
1055
  })(Em);
1014
1056
 
1015
- Dropzone.version = "2.0.11";
1057
+ Dropzone.version = "2.0.12";
1016
1058
 
1017
1059
  Dropzone.options = {};
1018
1060
 
1061
+ Dropzone.optionsForElement = function(element) {
1062
+ if (element.id) {
1063
+ return Dropzone.options[camelize(element.id)];
1064
+ } else {
1065
+ return void 0;
1066
+ }
1067
+ };
1068
+
1019
1069
  Dropzone.instances = [];
1020
1070
 
1021
1071
  Dropzone.forElement = function(element) {
1022
- var instance, _i, _len, _ref;
1072
+ var _ref;
1023
1073
 
1024
1074
  if (typeof element === "string") {
1025
1075
  element = document.querySelector(element);
1026
1076
  }
1027
- _ref = Dropzone.instances;
1028
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
1029
- instance = _ref[_i];
1030
- if (instance.element === element) {
1031
- return instance;
1077
+ return (_ref = element.dropzone) != null ? _ref : null;
1078
+ };
1079
+
1080
+ Dropzone.autoDiscover = true;
1081
+
1082
+ Dropzone.discover = function() {
1083
+ var checkElements, dropzone, dropzones, _i, _len, _results;
1084
+
1085
+ if (!Dropzone.autoDiscover) {
1086
+ return;
1087
+ }
1088
+ if (document.querySelectorAll) {
1089
+ dropzones = document.querySelectorAll(".dropzone");
1090
+ } else {
1091
+ dropzones = [];
1092
+ checkElements = function(elements) {
1093
+ var el, _i, _len, _results;
1094
+
1095
+ _results = [];
1096
+ for (_i = 0, _len = elements.length; _i < _len; _i++) {
1097
+ el = elements[_i];
1098
+ if (/(^| )dropzone($| )/.test(el.className)) {
1099
+ _results.push(dropzones.push(el));
1100
+ } else {
1101
+ _results.push(void 0);
1102
+ }
1103
+ }
1104
+ return _results;
1105
+ };
1106
+ checkElements(document.getElementsByTagName("div"));
1107
+ checkElements(document.getElementsByTagName("form"));
1108
+ }
1109
+ _results = [];
1110
+ for (_i = 0, _len = dropzones.length; _i < _len; _i++) {
1111
+ dropzone = dropzones[_i];
1112
+ if (Dropzone.optionsForElement(dropzone) !== false) {
1113
+ _results.push(new Dropzone(dropzone));
1114
+ } else {
1115
+ _results.push(void 0);
1032
1116
  }
1033
1117
  }
1034
- return null;
1118
+ return _results;
1035
1119
  };
1036
1120
 
1037
1121
  Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\/12/i];
@@ -1158,37 +1242,7 @@ require.register("dropzone/lib/dropzone.js", function(exports, require, module){
1158
1242
  }
1159
1243
  };
1160
1244
 
1161
- contentLoaded(window, function() {
1162
- var checkElements, dropzone, dropzones, _i, _len, _results;
1163
-
1164
- if (false) {
1165
- dropzones = document.querySelectorAll(".dropzone");
1166
- } else {
1167
- dropzones = [];
1168
- checkElements = function(elements) {
1169
- var el, _i, _len, _results;
1170
-
1171
- _results = [];
1172
- for (_i = 0, _len = elements.length; _i < _len; _i++) {
1173
- el = elements[_i];
1174
- if (/(^| )dropzone($| )/.test(el.className)) {
1175
- _results.push(dropzones.push(el));
1176
- } else {
1177
- _results.push(void 0);
1178
- }
1179
- }
1180
- return _results;
1181
- };
1182
- checkElements(document.getElementsByTagName("div"));
1183
- checkElements(document.getElementsByTagName("form"));
1184
- }
1185
- _results = [];
1186
- for (_i = 0, _len = dropzones.length; _i < _len; _i++) {
1187
- dropzone = dropzones[_i];
1188
- _results.push(new Dropzone(dropzone));
1189
- }
1190
- return _results;
1191
- });
1245
+ contentLoaded(window, Dropzone.discover);
1192
1246
 
1193
1247
  }).call(this);
1194
1248
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dropzonejs-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - José Nahuel Cuesta Luengo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-06 00:00:00.000000000 Z
11
+ date: 2013-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails