angular_ui_tree_rails 0.1.0 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 76cf8a4bbedd46ed03ef3b9724bae07b201c0a8d
4
- data.tar.gz: ad098ab51e5b9a9e19e9fe6995ab458bf98ecfe7
3
+ metadata.gz: eb384e9399313e761e3f338f16f85a795d406724
4
+ data.tar.gz: da0f0f3d4690b8ff2a0a4549b61879d0513421a2
5
5
  SHA512:
6
- metadata.gz: a7dbfa390cc0c239b1aedf956cf065a608389e4fa96a5714a609e8ba4c75939b1f510aa17dee7dbe3118bcaa48d04ba3e1c1ca3b893c4b0c480f79e6c2675f97
7
- data.tar.gz: 2ce2cd64c6ef329d77685a7ff735b03567aa84d994f56b345f1e8ef42b553fc32ead8177ba604cec4003ed9c45f66257aeb0cbfc567beaab90d7113dfae302be
6
+ metadata.gz: cc1352f893c058a7c6b045bb723d1ef8bb4a90726bef010b163227185ba99268ca00c16a3961f8aa9dcbf362807a8be6baaef6ef810f3ed291a8b898de87dc6f
7
+ data.tar.gz: 4a2cddb7dbd78a5f533772662ce432f52a973dd2ff85beae58abdcef2767ad5fe26350bc6fdf2c85c9e0c6cd4b47c1d65b8d62b417b3b4eb676f27cbc9c1a1f3
@@ -1,3 +1,3 @@
1
1
  module AngularUiTreeRails
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.5"
3
3
  end
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular UI Tree v2.1.5
2
+ * @license Angular UI Tree v2.0.13
3
3
  * (c) 2010-2014. https://github.com/JimLiu/angular-ui-tree
4
4
  * License: MIT
5
5
  */
@@ -48,7 +48,6 @@
48
48
  },
49
49
 
50
50
  setNodeAttribute: function(scope, attrName, val) {
51
- if (!scope.$modelValue) return null;
52
51
  var data = this.nodesData[scope.$modelValue.$$hashKey];
53
52
  if (!data) {
54
53
  data = {};
@@ -58,7 +57,6 @@
58
57
  },
59
58
 
60
59
  getNodeAttribute: function(scope, attrName) {
61
- if (!scope.$modelValue) return null;
62
60
  var data = this.nodesData[scope.$modelValue.$$hashKey];
63
61
  if (data) {
64
62
  return data[attrName];
@@ -305,7 +303,6 @@
305
303
  $scope.$callbacks = null;
306
304
 
307
305
  $scope.dragEnabled = true;
308
- $scope.emptyPlaceHolderEnabled = true;
309
306
  $scope.maxDepth = 0;
310
307
  $scope.dragDelay = 0;
311
308
 
@@ -322,8 +319,7 @@
322
319
  };
323
320
 
324
321
  $scope.resetEmptyElement = function() {
325
- if ($scope.$nodesScope.$modelValue.length === 0 &&
326
- $scope.emptyPlaceHolderEnabled) {
322
+ if ($scope.$nodesScope.$modelValue.length === 0) {
327
323
  $element.append($scope.$emptyElm);
328
324
  } else {
329
325
  $scope.$emptyElm.remove();
@@ -358,8 +354,8 @@
358
354
 
359
355
  angular.module('ui.tree')
360
356
 
361
- .controller('TreeNodesController', ['$scope', '$element', 'treeConfig',
362
- function ($scope, $element, treeConfig) {
357
+ .controller('TreeNodesController', ['$scope', '$element', '$timeout', 'treeConfig',
358
+ function ($scope, $element, $timeout, treeConfig) {
363
359
  this.scope = $scope;
364
360
 
365
361
  $scope.$element = $element;
@@ -373,12 +369,12 @@
373
369
  $scope.maxDepth = 0;
374
370
 
375
371
  $scope.initSubNode = function(subNode) {
376
- if(!subNode.$modelValue) return null;
377
- $scope.$nodesMap[subNode.$modelValue.$$hashKey] = subNode;
372
+ $timeout(function() {
373
+ $scope.$nodesMap[subNode.$modelValue.$$hashKey] = subNode;
374
+ });
378
375
  };
379
376
 
380
377
  $scope.destroySubNode = function(subNode) {
381
- if(!subNode.$modelValue) return null;
382
378
  $scope.$nodesMap[subNode.$modelValue.$$hashKey] = null;
383
379
  };
384
380
 
@@ -386,10 +382,6 @@
386
382
  return $scope.$treeScope.$callbacks.accept(sourceNode, $scope, destIndex);
387
383
  };
388
384
 
389
- $scope.beforeDrag = function(sourceNode) {
390
- return $scope.$treeScope.$callbacks.beforeDrag(sourceNode);
391
- };
392
-
393
385
  $scope.isParent = function(node) {
394
386
  return node.$parentNodesScope == $scope;
395
387
  };
@@ -536,15 +528,7 @@
536
528
  };
537
529
 
538
530
  $scope.accept = function(sourceNode, destIndex) {
539
- return $scope.$childNodesScope &&
540
- $scope.$childNodesScope.$modelValue &&
541
- $scope.$childNodesScope.accept(sourceNode, destIndex);
542
- };
543
-
544
- $scope.removeNode = function(){
545
- var node = $scope.remove();
546
- $scope.$callbacks.removed(node);
547
- return node;
531
+ return $scope.$childNodesScope && $scope.$childNodesScope.accept(sourceNode, destIndex);
548
532
  };
549
533
 
550
534
  $scope.remove = function() {
@@ -626,8 +610,7 @@
626
610
  controller: 'TreeController',
627
611
  link: function(scope, element, attrs) {
628
612
  var callbacks = {
629
- accept: null,
630
- beforeDrag: null
613
+ accept: null
631
614
  };
632
615
 
633
616
  var config = {};
@@ -647,27 +630,24 @@
647
630
  }
648
631
  }, true);
649
632
 
650
- scope.$watch(attrs.dragEnabled, function(val) {
651
- if((typeof val) == "boolean") {
652
- scope.dragEnabled = val;
633
+ attrs.$observe('dragEnabled', function(val) {
634
+ var de = scope.$eval(val);
635
+ if((typeof de) == "boolean") {
636
+ scope.dragEnabled = de;
653
637
  }
654
638
  });
655
639
 
656
- scope.$watch(attrs.emptyPlaceHolderEnabled, function(val) {
657
- if((typeof val) == "boolean") {
658
- scope.emptyPlaceHolderEnabled = val;
640
+ attrs.$observe('maxDepth', function(val) {
641
+ var md = scope.$eval(val);
642
+ if((typeof md) == "number") {
643
+ scope.maxDepth = md;
659
644
  }
660
645
  });
661
646
 
662
- scope.$watch(attrs.maxDepth, function(val) {
663
- if((typeof val) == "number") {
664
- scope.maxDepth = val;
665
- }
666
- });
667
-
668
- scope.$watch(attrs.dragDelay, function(val) {
669
- if((typeof val) == "number") {
670
- scope.dragDelay = val;
647
+ attrs.$observe('dragDelay', function(val) {
648
+ var dd = scope.$eval(val);
649
+ if((typeof dd) == "number") {
650
+ scope.dragDelay = dd;
671
651
  }
672
652
  });
673
653
 
@@ -682,14 +662,6 @@
682
662
  return true;
683
663
  };
684
664
 
685
- callbacks.beforeDrag = function(sourceNodeScope) {
686
- return true;
687
- };
688
-
689
- callbacks.removed = function(node){
690
-
691
- };
692
-
693
665
  callbacks.dropped = function(event) {
694
666
 
695
667
  };
@@ -707,10 +679,6 @@
707
679
 
708
680
  };
709
681
 
710
- callbacks.beforeDrop = function(event) {
711
-
712
- };
713
-
714
682
  scope.$watch(attrs.uiTree, function(newVal, oldVal){
715
683
  angular.forEach(newVal, function(value, key){
716
684
  if (callbacks[key]) {
@@ -770,9 +738,10 @@
770
738
  };
771
739
  }
772
740
 
773
- scope.$watch(attrs.maxDepth, function(val) {
774
- if((typeof val) == "number") {
775
- scope.maxDepth = val;
741
+ attrs.$observe('maxDepth', function(val) {
742
+ var md = scope.$eval(val);
743
+ if((typeof md) == "number") {
744
+ scope.maxDepth = md;
776
745
  }
777
746
  });
778
747
 
@@ -810,10 +779,10 @@
810
779
  scope.init(controllersArr);
811
780
 
812
781
  scope.collapsed = !!$uiTreeHelper.getNodeAttribute(scope, 'collapsed');
813
-
814
- scope.$watch(attrs.collapsed, function(val) {
815
- if((typeof val) == "boolean") {
816
- scope.collapsed = val;
782
+ attrs.$observe('collapsed', function(val) {
783
+ var collapsed = scope.$eval(val);
784
+ if((typeof collapsed) == "boolean") {
785
+ scope.collapsed = collapsed;
817
786
  }
818
787
  });
819
788
 
@@ -828,8 +797,6 @@
828
797
  var placeElm, hiddenPlaceElm, dragElm;
829
798
  var treeScope = null;
830
799
  var elements; // As a parameter for callbacks
831
- var dragDelaying = true;
832
- var dragStarted = false;
833
800
  var dragTimer = null;
834
801
  var body = document.body,
835
802
  html = document.documentElement,
@@ -860,14 +827,6 @@
860
827
  return;
861
828
  }
862
829
 
863
- var eventElmTagName = eventElm.prop('tagName').toLowerCase();
864
- if (eventElmTagName == 'input' ||
865
- eventElmTagName == 'textarea' ||
866
- eventElmTagName == 'button' ||
867
- eventElmTagName == 'select') { // if it's a input or button, ignore it
868
- return;
869
- }
870
-
871
830
  // check if it or it's parents has a 'data-nodrag' attribute
872
831
  while (eventElm && eventElm[0] && eventElm[0] != element) {
873
832
  if ($uiTreeHelper.nodrag(eventElm)) { // if the node mark as `nodrag`, DONOT drag it.
@@ -876,10 +835,6 @@
876
835
  eventElm = eventElm.parent();
877
836
  }
878
837
 
879
- if (!scope.beforeDrag(scope)){
880
- return;
881
- }
882
-
883
838
  e.uiTreeDragging = true; // stop event bubbling
884
839
  if (e.originalEvent) {
885
840
  e.originalEvent.uiTreeDragging = true;
@@ -912,13 +867,6 @@
912
867
  dragElm.css('width', $uiTreeHelper.width(scope.$element) + 'px');
913
868
  dragElm.css('z-index', 9999);
914
869
 
915
- // Prevents cursor to change rapidly in Opera 12.16 and IE when dragging an element
916
- var hStyle = (scope.$element[0].querySelector('.angular-ui-tree-handle') || scope.$element[0]).currentStyle;
917
- if (hStyle) {
918
- document.body.setAttribute('ui-tree-cursor', $document.find('body').css('cursor') || '');
919
- $document.find('body').css({'cursor': hStyle.cursor + '!important'});
920
- }
921
-
922
870
  scope.$element.after(placeElm);
923
871
  scope.$element.after(hiddenPlaceElm);
924
872
  dragElm.append(scope.$element);
@@ -931,6 +879,9 @@
931
879
  placeholder: placeElm,
932
880
  dragging: dragElm
933
881
  };
882
+ scope.$apply(function() {
883
+ scope.$callbacks.dragStart(dragInfo.eventArgs(elements, pos));
884
+ });
934
885
 
935
886
  angular.element($document).bind('touchend', dragEndEvent);
936
887
  angular.element($document).bind('touchcancel', dragEndEvent);
@@ -938,33 +889,17 @@
938
889
  angular.element($document).bind('mouseup', dragEndEvent);
939
890
  angular.element($document).bind('mousemove', dragMoveEvent);
940
891
  angular.element($document).bind('mouseleave', dragCancelEvent);
941
-
942
892
  document_height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);
943
893
  document_width = Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);
944
894
  };
945
895
 
946
896
  var dragMove = function(e) {
947
- if (!dragStarted) {
948
- if (!dragDelaying) {
949
- dragStarted = true;
950
- scope.$apply(function() {
951
- scope.$callbacks.dragStart(dragInfo.eventArgs(elements, pos));
952
- });
953
- }
954
- return;
955
- }
956
-
957
897
  var eventObj = $uiTreeHelper.eventObj(e);
958
898
  var prev, leftElmPos, topElmPos;
959
899
 
960
900
  if (dragElm) {
961
901
  e.preventDefault();
962
-
963
- if ($window.getSelection) {
964
- $window.getSelection().removeAllRanges();
965
- } else if ($window.document.selection) {
966
- $window.document.selection.empty();
967
- }
902
+ $window.getSelection().removeAllRanges();
968
903
 
969
904
  leftElmPos = eventObj.pageX - pos.offsetX;
970
905
  topElmPos = eventObj.pageY - pos.offsetY;
@@ -1051,12 +986,8 @@
1051
986
  // Select the drag target. Because IE does not support CSS 'pointer-events: none', it will always
1052
987
  // pick the drag element itself as the target. To prevent this, we hide the drag element while
1053
988
  // selecting the target.
1054
- var displayElm;
1055
989
  if (angular.isFunction(dragElm.hide)) {
1056
990
  dragElm.hide();
1057
- }else{
1058
- displayElm = dragElm[0].style.display;
1059
- dragElm[0].style.display = "none";
1060
991
  }
1061
992
 
1062
993
  // when using elementFromPoint() inside an iframe, you have to call
@@ -1066,8 +997,6 @@
1066
997
  var targetElm = angular.element($window.document.elementFromPoint(targetX, targetY));
1067
998
  if (angular.isFunction(dragElm.show)) {
1068
999
  dragElm.show();
1069
- }else{
1070
- dragElm[0].style.display = displayElm;
1071
1000
  }
1072
1001
 
1073
1002
  // move vertical
@@ -1135,9 +1064,6 @@
1135
1064
  e.preventDefault();
1136
1065
 
1137
1066
  if (dragElm) {
1138
- scope.$treeScope.$apply(function() {
1139
- scope.$callbacks.beforeDrop(dragInfo.eventArgs(elements, pos));
1140
- });
1141
1067
  // roll back elements changed
1142
1068
  hiddenPlaceElm.replaceWith(scope.$element);
1143
1069
  placeElm.remove();
@@ -1160,12 +1086,6 @@
1160
1086
 
1161
1087
  }
1162
1088
 
1163
- // Restore cursor in Opera 12.16 and IE
1164
- var oldCur = document.body.getAttribute('ui-tree-cursor');
1165
- if (oldCur !== null) {
1166
- $document.find('body').css({'cursor': oldCur});
1167
- document.body.removeAttribute('ui-tree-cursor');
1168
- }
1169
1089
 
1170
1090
  angular.element($document).unbind('touchend', dragEndEvent); // Mobile
1171
1091
  angular.element($document).unbind('touchcancel', dragEndEvent); // Mobile
@@ -1195,13 +1115,11 @@
1195
1115
  };
1196
1116
 
1197
1117
  var bindDrag = function() {
1198
- element.bind('touchstart mousedown', function (e) {
1199
- dragDelaying = true;
1200
- dragStarted = false;
1201
- dragStartEvent(e);
1202
- dragTimer = $timeout(function(){dragDelaying = false;}, scope.dragDelay);
1118
+ element.bind('touchstart', dragStartEvent);
1119
+ element.bind('mousedown', function (e) {
1120
+ dragTimer = $timeout(function(){dragStartEvent(e);}, scope.dragDelay);
1203
1121
  });
1204
- element.bind('touchend touchcancel mouseup',function(){$timeout.cancel(dragTimer);});
1122
+ element.bind('mouseup',function(){$timeout.cancel(dragTimer);});
1205
1123
  };
1206
1124
  bindDrag();
1207
1125
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: angular_ui_tree_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taylor Mitchell