dynatree-rails 0.0.4 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +10 -1
- data/lib/dynatree-rails/version.rb +1 -1
- data/vendor/assets/images/dynatree/jquery.dynatree.js +3312 -0
- data/vendor/assets/images/dynatree/{vista-icons.gif → skin-vista/icons.gif} +0 -0
- data/vendor/assets/images/dynatree/{vista-loading.gif → skin-vista/loading.gif} +0 -0
- data/vendor/assets/images/dynatree/skin/icons-rtl.gif +0 -0
- data/vendor/assets/images/dynatree/{icons.gif → skin/icons.gif} +0 -0
- data/vendor/assets/images/dynatree/{loading.gif → skin/loading.gif} +0 -0
- data/vendor/assets/images/dynatree/skin/vline-rtl.gif +0 -0
- data/vendor/assets/images/dynatree/{vline.gif → skin/vline.gif} +0 -0
- data/vendor/assets/javascripts/dynatree/jquery.dynatree.js +121 -82
- data/vendor/assets/stylesheets/dynatree/skin-vista.sass +27 -26
- data/vendor/assets/stylesheets/dynatree/skin.sass +28 -24
- metadata +11 -8
File without changes
|
File without changes
|
Binary file
|
File without changes
|
File without changes
|
Binary file
|
File without changes
|
@@ -2,23 +2,27 @@
|
|
2
2
|
jquery.dynatree.js
|
3
3
|
Dynamic tree view control, with support for lazy loading of branches.
|
4
4
|
|
5
|
-
Copyright (c)
|
5
|
+
Copyright (c) 2006-2012, Martin Wendt (http://wwWendt.de)
|
6
6
|
Dual licensed under the MIT or GPL Version 2 licenses.
|
7
7
|
http://code.google.com/p/dynatree/wiki/LicenseInfo
|
8
8
|
|
9
9
|
A current version and some documentation is available at
|
10
10
|
http://dynatree.googlecode.com/
|
11
11
|
|
12
|
-
$Version: 1.2.
|
13
|
-
$Revision:
|
12
|
+
$Version: 1.2.2$
|
13
|
+
$Revision: 627, 2012-10-07 16:55:00$
|
14
14
|
|
15
15
|
@depends: jquery.js
|
16
16
|
@depends: jquery.ui.core.js
|
17
17
|
@depends: jquery.cookie.js
|
18
18
|
*************************************************************************/
|
19
19
|
|
20
|
+
/* jsHint options*/
|
20
21
|
// Note: We currently allow eval() to parse the 'data' attribtes, when initializing from HTML.
|
21
|
-
|
22
|
+
// TODO: pass jsHint with the options given in grunt.js only.
|
23
|
+
// The following should not be required:
|
24
|
+
/*global alert */
|
25
|
+
/*jshint nomen:false, smarttabs:true, eqeqeq:false, evil:true, regexp:false */
|
22
26
|
|
23
27
|
/*************************************************************************
|
24
28
|
* Debug functions
|
@@ -188,7 +192,8 @@ DynaTreeNode.prototype = {
|
|
188
192
|
cache = tree.cache,
|
189
193
|
level = this.getLevel(),
|
190
194
|
data = this.data,
|
191
|
-
res = ""
|
195
|
+
res = "",
|
196
|
+
imageSrc;
|
192
197
|
// connector (expanded, expandable or simple)
|
193
198
|
if( level < opts.minExpandLevel ) {
|
194
199
|
if(level > 1){
|
@@ -206,10 +211,15 @@ DynaTreeNode.prototype = {
|
|
206
211
|
}
|
207
212
|
// folder or doctype icon
|
208
213
|
if ( data.icon ) {
|
209
|
-
|
214
|
+
if (data.icon.charAt(0) === "/"){
|
215
|
+
imageSrc = data.icon;
|
216
|
+
}else{
|
217
|
+
imageSrc = opts.imagePath + data.icon;
|
218
|
+
}
|
219
|
+
res += "<img src='" + imageSrc + "' alt='' />";
|
210
220
|
} else if ( data.icon === false ) {
|
211
221
|
// icon == false means 'no icon'
|
212
|
-
noop(); // keep JSLint happy
|
222
|
+
// noop(); // keep JSLint happy
|
213
223
|
} else {
|
214
224
|
// icon == null means 'default icon'
|
215
225
|
res += cache.tagNodeIcon;
|
@@ -898,6 +908,8 @@ DynaTreeNode.prototype = {
|
|
898
908
|
for(i=0, l=p.childList.length; i<l; i++) {
|
899
909
|
var n = p.childList[i];
|
900
910
|
if( !n.bSelected && !n.data.isStatusNode && !n.data.unselectable) {
|
911
|
+
// issue 305 proposes this:
|
912
|
+
// if( !n.bSelected && !n.data.isStatusNode ) {
|
901
913
|
allChildsSelected = false;
|
902
914
|
break;
|
903
915
|
}
|
@@ -1155,12 +1167,8 @@ DynaTreeNode.prototype = {
|
|
1155
1167
|
this._userActivate();
|
1156
1168
|
var aTag = this.span.getElementsByTagName("a");
|
1157
1169
|
if(aTag[0]){
|
1158
|
-
// issue 154
|
1159
|
-
|
1160
|
-
// Chrome and Safari don't focus the a-tag on click,
|
1161
|
-
// but calling focus() seem to have problems on IE:
|
1162
|
-
// http://code.google.com/p/dynatree/issues/detail?id=154
|
1163
|
-
if(!$.browser.msie){
|
1170
|
+
// issue 154, 313
|
1171
|
+
if(!($.browser.msie && parseInt($.browser.version, 10) < 9)){
|
1164
1172
|
aTag[0].focus();
|
1165
1173
|
}
|
1166
1174
|
}else{
|
@@ -1272,7 +1280,7 @@ DynaTreeNode.prototype = {
|
|
1272
1280
|
|
1273
1281
|
_onFocus: function(event) {
|
1274
1282
|
// Handles blur and focus events.
|
1275
|
-
// this.tree.logDebug("dtnode.
|
1283
|
+
// this.tree.logDebug("dtnode._onFocus(%o): %o", event, this);
|
1276
1284
|
var opts = this.tree.options;
|
1277
1285
|
if ( event.type == "blur" || event.type == "focusout" ) {
|
1278
1286
|
if ( opts.onBlur ){
|
@@ -1478,39 +1486,44 @@ DynaTreeNode.prototype = {
|
|
1478
1486
|
throw "Key path must be relative (don't start with '/')";
|
1479
1487
|
}
|
1480
1488
|
var seg = segList.shift();
|
1481
|
-
|
1482
|
-
|
1483
|
-
|
1484
|
-
|
1485
|
-
|
1486
|
-
|
1487
|
-
|
1488
|
-
|
1489
|
-
|
1490
|
-
|
1491
|
-
|
1492
|
-
|
1493
|
-
|
1494
|
-
|
1495
|
-
|
1496
|
-
|
1497
|
-
|
1498
|
-
|
1499
|
-
|
1500
|
-
|
1501
|
-
|
1502
|
-
|
1503
|
-
|
1504
|
-
|
1505
|
-
|
1506
|
-
|
1507
|
-
|
1508
|
-
|
1489
|
+
if(this.childList){
|
1490
|
+
for(var i=0, l=this.childList.length; i < l; i++){
|
1491
|
+
var child = this.childList[i];
|
1492
|
+
if( child.data.key === seg ){
|
1493
|
+
if(segList.length === 0) {
|
1494
|
+
// Found the end node
|
1495
|
+
callback.call(tree, child, "ok");
|
1496
|
+
|
1497
|
+
}else if(child.data.isLazy && (child.childList === null || child.childList === undefined)){
|
1498
|
+
tree.logDebug("%s._loadKeyPath(%s) -> reloading %s...", this, keyPath, child);
|
1499
|
+
var self = this;
|
1500
|
+
// Note: this line gives a JSLint warning (Don't make functions within a loop)
|
1501
|
+
/*jshint loopfunc:true */
|
1502
|
+
child.reloadChildren(function(node, isOk){
|
1503
|
+
// After loading, look for direct child with that key
|
1504
|
+
if(isOk){
|
1505
|
+
tree.logDebug("%s._loadKeyPath(%s) -> reloaded %s.", node, keyPath, node);
|
1506
|
+
callback.call(tree, child, "loaded");
|
1507
|
+
node._loadKeyPath(segList.join(tree.options.keyPathSeparator), callback);
|
1508
|
+
}else{
|
1509
|
+
tree.logWarning("%s._loadKeyPath(%s) -> reloadChildren() failed.", self, keyPath);
|
1510
|
+
callback.call(tree, child, "error");
|
1511
|
+
}
|
1512
|
+
});
|
1513
|
+
// we can ignore it, since it will only be exectuted once, the the loop is ended
|
1514
|
+
// See also http://stackoverflow.com/questions/3037598/how-to-get-around-the-jslint-error-dont-make-functions-within-a-loop
|
1515
|
+
} else {
|
1516
|
+
callback.call(tree, child, "loaded");
|
1517
|
+
// Look for direct child with that key
|
1518
|
+
child._loadKeyPath(segList.join(tree.options.keyPathSeparator), callback);
|
1519
|
+
}
|
1520
|
+
return;
|
1509
1521
|
}
|
1510
|
-
return;
|
1511
1522
|
}
|
1512
1523
|
}
|
1513
1524
|
// Could not find key
|
1525
|
+
// Callback params: child: undefined, the segment, isEndNode (segList.length === 0)
|
1526
|
+
callback.call(tree, undefined, "notfound", seg, segList.length === 0);
|
1514
1527
|
tree.logWarning("Node not found: " + seg);
|
1515
1528
|
return;
|
1516
1529
|
},
|
@@ -1729,7 +1742,7 @@ DynaTreeNode.prototype = {
|
|
1729
1742
|
// Process ASPX WebMethod JSON object inside "d" property
|
1730
1743
|
// http://code.google.com/p/dynatree/issues/detail?id=202
|
1731
1744
|
else if (data && data.hasOwnProperty("d")) {
|
1732
|
-
data = (typeof data.d) == "string" ? $.parseJSON(data.d) :
|
1745
|
+
data = (typeof data.d) == "string" ? $.parseJSON(data.d) : data.d;
|
1733
1746
|
}
|
1734
1747
|
if(!$.isArray(data) || data.length !== 0){
|
1735
1748
|
self.addChild(data, null);
|
@@ -1789,7 +1802,7 @@ DynaTreeNode.prototype = {
|
|
1789
1802
|
}
|
1790
1803
|
// Unlink this node from current parent
|
1791
1804
|
if( this.parent.childList.length == 1 ) {
|
1792
|
-
this.parent.childList = null;
|
1805
|
+
this.parent.childList = this.parent.data.isLazy ? [] : null;
|
1793
1806
|
this.parent.bExpanded = false;
|
1794
1807
|
} else {
|
1795
1808
|
pos = $.inArray(this, this.parent.childList);
|
@@ -1799,7 +1812,9 @@ DynaTreeNode.prototype = {
|
|
1799
1812
|
this.parent.childList.splice(pos, 1);
|
1800
1813
|
}
|
1801
1814
|
// Remove from source DOM parent
|
1802
|
-
this.parent.ul
|
1815
|
+
if(this.parent.ul){
|
1816
|
+
this.parent.ul.removeChild(this.li);
|
1817
|
+
}
|
1803
1818
|
|
1804
1819
|
// Insert this node to target parent's child list
|
1805
1820
|
this.parent = targetParent;
|
@@ -1839,8 +1854,10 @@ DynaTreeNode.prototype = {
|
|
1839
1854
|
targetParent.ul.style.display = "none";
|
1840
1855
|
targetParent.li.appendChild(targetParent.ul);
|
1841
1856
|
}
|
1842
|
-
// Add to target DOM parent
|
1843
|
-
|
1857
|
+
// Issue 319: Add to target DOM parent (only if node was already rendered(expanded))
|
1858
|
+
if(this.li){
|
1859
|
+
targetParent.ul.appendChild(this.li);
|
1860
|
+
}
|
1844
1861
|
|
1845
1862
|
if( this.tree !== targetNode.tree ) {
|
1846
1863
|
// Fix node.tree for all source nodes
|
@@ -2026,7 +2043,7 @@ var DynaTree = Class.create();
|
|
2026
2043
|
|
2027
2044
|
// --- Static members ----------------------------------------------------------
|
2028
2045
|
|
2029
|
-
DynaTree.version = "$Version: 1.2.
|
2046
|
+
DynaTree.version = "$Version: 1.2.2$";
|
2030
2047
|
|
2031
2048
|
/*
|
2032
2049
|
DynaTree._initTree = function() {
|
@@ -2139,10 +2156,10 @@ DynaTree.prototype = {
|
|
2139
2156
|
this.tnRoot.render();
|
2140
2157
|
this.divTree.appendChild(this.tnRoot.ul);
|
2141
2158
|
|
2142
|
-
var root = this.tnRoot
|
2143
|
-
|
2144
|
-
|
2145
|
-
|
2159
|
+
var root = this.tnRoot,
|
2160
|
+
isReloading = ( opts.persist && this.persistence.isReloading() ),
|
2161
|
+
isLazy = false,
|
2162
|
+
prevFlag = this.enableUpdate(false);
|
2146
2163
|
|
2147
2164
|
this.logDebug("Dynatree._load(): read tree structure...");
|
2148
2165
|
|
@@ -2535,8 +2552,9 @@ TODO: better?
|
|
2535
2552
|
if( !this.$dndMarker ) {
|
2536
2553
|
this.$dndMarker = $("<div id='dynatree-drop-marker'></div>")
|
2537
2554
|
.hide()
|
2555
|
+
.css({"z-index": 1000})
|
2538
2556
|
.prependTo($(this.divTree).parent());
|
2539
|
-
|
2557
|
+
|
2540
2558
|
// logMsg("Creating marker: %o", this.$dndMarker);
|
2541
2559
|
}
|
2542
2560
|
/*
|
@@ -2546,29 +2564,28 @@ TODO: better?
|
|
2546
2564
|
// sourceNode.removeClass("dynatree-drop-target");
|
2547
2565
|
}
|
2548
2566
|
*/
|
2549
|
-
// this.$dndMarker.attr("class", hitMode);
|
2550
2567
|
if(hitMode === "after" || hitMode === "before" || hitMode === "over"){
|
2551
2568
|
// $source && $source.addClass("dynatree-drag-source");
|
2552
|
-
var pos = $target.offset();
|
2553
|
-
|
2554
2569
|
// $target.addClass("dynatree-drop-target");
|
2555
2570
|
|
2571
|
+
var markerOffset = "0 0";
|
2572
|
+
|
2556
2573
|
switch(hitMode){
|
2557
2574
|
case "before":
|
2558
2575
|
this.$dndMarker.removeClass("dynatree-drop-after dynatree-drop-over");
|
2559
2576
|
this.$dndMarker.addClass("dynatree-drop-before");
|
2560
|
-
|
2577
|
+
markerOffset = "0 -8";
|
2561
2578
|
break;
|
2562
2579
|
case "after":
|
2563
2580
|
this.$dndMarker.removeClass("dynatree-drop-before dynatree-drop-over");
|
2564
2581
|
this.$dndMarker.addClass("dynatree-drop-after");
|
2565
|
-
|
2582
|
+
markerOffset = "0 8";
|
2566
2583
|
break;
|
2567
2584
|
default:
|
2568
2585
|
this.$dndMarker.removeClass("dynatree-drop-after dynatree-drop-before");
|
2569
2586
|
this.$dndMarker.addClass("dynatree-drop-over");
|
2570
2587
|
$target.addClass("dynatree-drop-target");
|
2571
|
-
|
2588
|
+
markerOffset = "8 0";
|
2572
2589
|
}
|
2573
2590
|
// logMsg("Creating marker: %o", this.$dndMarker);
|
2574
2591
|
// logMsg(" $target.offset=%o", $target);
|
@@ -2581,13 +2598,15 @@ TODO: better?
|
|
2581
2598
|
// var parentPos = $target.offsetParent().offset();
|
2582
2599
|
// var bodyPos = $target.offsetParent().offset();
|
2583
2600
|
|
2584
|
-
this.$dndMarker
|
2585
|
-
.
|
2586
|
-
|
2587
|
-
"top"
|
2588
|
-
"
|
2589
|
-
|
2590
|
-
|
2601
|
+
this.$dndMarker
|
2602
|
+
.show()
|
2603
|
+
.position({
|
2604
|
+
my: "left top",
|
2605
|
+
at: "left top",
|
2606
|
+
of: $target,
|
2607
|
+
offset: markerOffset
|
2608
|
+
});
|
2609
|
+
|
2591
2610
|
// helper.addClass("dynatree-drop-hover");
|
2592
2611
|
} else {
|
2593
2612
|
// $source && $source.removeClass("dynatree-drag-source");
|
@@ -2659,7 +2678,8 @@ TODO: better?
|
|
2659
2678
|
dnd = this.options.dnd,
|
2660
2679
|
res = null,
|
2661
2680
|
nodeTag = $(node.span),
|
2662
|
-
hitMode
|
2681
|
+
hitMode,
|
2682
|
+
enterResponse;
|
2663
2683
|
|
2664
2684
|
switch (eventName) {
|
2665
2685
|
case "helper":
|
@@ -2693,20 +2713,26 @@ TODO: better?
|
|
2693
2713
|
break;
|
2694
2714
|
case "enter":
|
2695
2715
|
res = dnd.onDragEnter ? dnd.onDragEnter(node, otherNode) : null;
|
2696
|
-
res
|
2697
|
-
|
2698
|
-
|
2699
|
-
|
2700
|
-
|
2716
|
+
if(!res){
|
2717
|
+
// convert null, undefined, false to false
|
2718
|
+
res = false;
|
2719
|
+
}else{
|
2720
|
+
res = {
|
2721
|
+
over: ((res === true) || (res === "over") || $.inArray("over", res) >= 0),
|
2722
|
+
before: ((res === true) || (res === "before") || $.inArray("before", res) >= 0),
|
2723
|
+
after: ((res === true) || (res === "after") || $.inArray("after", res) >= 0)
|
2724
|
+
};
|
2725
|
+
}
|
2701
2726
|
ui.helper.data("enterResponse", res);
|
2702
2727
|
// this.logDebug("helper.enterResponse: %o", res);
|
2703
2728
|
break;
|
2704
2729
|
case "over":
|
2705
|
-
|
2730
|
+
enterResponse = ui.helper.data("enterResponse");
|
2706
2731
|
hitMode = null;
|
2707
2732
|
if(enterResponse === false){
|
2708
2733
|
// Don't call onDragOver if onEnter returned false.
|
2709
|
-
|
2734
|
+
// issue 332
|
2735
|
+
// break;
|
2710
2736
|
} else if(typeof enterResponse === "string") {
|
2711
2737
|
// Use hitMode from onEnter if provided.
|
2712
2738
|
hitMode = enterResponse;
|
@@ -2766,12 +2792,19 @@ TODO: better?
|
|
2766
2792
|
}
|
2767
2793
|
if(hitMode && dnd.onDragOver){
|
2768
2794
|
res = dnd.onDragOver(node, otherNode, hitMode);
|
2795
|
+
if(res === "over" || res === "before" || res === "after") {
|
2796
|
+
hitMode = res;
|
2797
|
+
}
|
2769
2798
|
}
|
2770
|
-
|
2799
|
+
// issue 332
|
2800
|
+
// this._setDndStatus(otherNode, node, ui.helper, hitMode, res!==false);
|
2801
|
+
this._setDndStatus(otherNode, node, ui.helper, hitMode, res!==false && hitMode !== null);
|
2771
2802
|
break;
|
2772
2803
|
case "drop":
|
2804
|
+
// issue 286: don't trigger onDrop, if DnD status is 'reject'
|
2805
|
+
var isForbidden = ui.helper.hasClass("dynatree-drop-reject");
|
2773
2806
|
hitMode = ui.helper.data("hitMode");
|
2774
|
-
if(hitMode && dnd.onDrop){
|
2807
|
+
if(hitMode && dnd.onDrop && !isForbidden){
|
2775
2808
|
dnd.onDrop(node, otherNode, hitMode, ui, draggable);
|
2776
2809
|
}
|
2777
2810
|
break;
|
@@ -2908,6 +2941,7 @@ $.widget("ui.dynatree", {
|
|
2908
2941
|
return dtnode ? dtnode._onFocus(event) : false;
|
2909
2942
|
}
|
2910
2943
|
var div = this.tree.divTree;
|
2944
|
+
|
2911
2945
|
if( div.addEventListener ) {
|
2912
2946
|
div.addEventListener("focus", __focusHandler, true);
|
2913
2947
|
div.addEventListener("blur", __focusHandler, true);
|
@@ -2972,7 +3006,7 @@ if( parseFloat($.ui.version) < 1.8 ) {
|
|
2972
3006
|
/*******************************************************************************
|
2973
3007
|
* Tools in ui.dynatree namespace
|
2974
3008
|
*/
|
2975
|
-
$.ui.dynatree.version = "$Version: 1.2.
|
3009
|
+
$.ui.dynatree.version = "$Version: 1.2.2$";
|
2976
3010
|
|
2977
3011
|
/**
|
2978
3012
|
* Return a DynaTreeNode object for a given DOM element
|
@@ -3007,7 +3041,7 @@ $.ui.dynatree.getNode = function(el) {
|
|
3007
3041
|
});
|
3008
3042
|
return node;
|
3009
3043
|
*/
|
3010
|
-
}
|
3044
|
+
};
|
3011
3045
|
|
3012
3046
|
/**Return persistence information from cookies.*/
|
3013
3047
|
$.ui.dynatree.getPersistData = DynaTreeStatus._getTreePersistData;
|
@@ -3055,6 +3089,9 @@ $.ui.dynatree.prototype.options = {
|
|
3055
3089
|
onCustomRender: null, // Callback(dtnode) before a node is rendered. Return a HTML string to override.
|
3056
3090
|
onCreate: null, // Callback(dtnode, nodeSpan) after a node was rendered for the first time.
|
3057
3091
|
onRender: null, // Callback(dtnode, nodeSpan) after a node was rendered.
|
3092
|
+
// postProcess is similar to the standard dataFilter hook,
|
3093
|
+
// but it is also called for JSONP
|
3094
|
+
postProcess: null, // Callback(data, dataType) before an Ajax result is passed to dynatree
|
3058
3095
|
|
3059
3096
|
// Drag'n'drop support
|
3060
3097
|
dnd: {
|
@@ -3194,8 +3231,10 @@ function _initDragAndDrop(tree) {
|
|
3194
3231
|
return sourceNode.tree._onDragEvent("helper", sourceNode, null, event, null, null);
|
3195
3232
|
},
|
3196
3233
|
start: function(event, ui) {
|
3234
|
+
// See issues 211, 268, 278
|
3197
3235
|
// var sourceNode = $.ui.dynatree.getNode(event.target);
|
3198
|
-
|
3236
|
+
var sourceNode = ui.helper.data("dtSourceNode");
|
3237
|
+
return !!sourceNode; // Abort dragging if no Node could be found
|
3199
3238
|
},
|
3200
3239
|
_last: null
|
3201
3240
|
});
|
@@ -3269,7 +3308,7 @@ var _registerDnd = function() {
|
|
3269
3308
|
if(targetNode){
|
3270
3309
|
if(!targetNode.tree.options.dnd.onDrop) {
|
3271
3310
|
// not enabled as drop target
|
3272
|
-
noop(); // Keep JSLint happy
|
3311
|
+
// noop(); // Keep JSLint happy
|
3273
3312
|
} else if(targetNode === prevTargetNode) {
|
3274
3313
|
// Moving over same node
|
3275
3314
|
targetNode.tree._onDragEvent("over", targetNode, sourceNode, event, ui, draggable);
|
@@ -3309,4 +3348,4 @@ var _registerDnd = function() {
|
|
3309
3348
|
};
|
3310
3349
|
|
3311
3350
|
// ---------------------------------------------------------------------------
|
3312
|
-
}
|
3351
|
+
}(jQuery));
|
@@ -35,7 +35,7 @@ ul
|
|
35
35
|
padding: 1px 0 0 0
|
36
36
|
&.dynatree-lastsib
|
37
37
|
background-image: none
|
38
|
-
&.dynatree-no-connector li
|
38
|
+
&.dynatree-no-connector > li
|
39
39
|
background-image: none
|
40
40
|
|
41
41
|
/* Suppress lines for last child node
|
@@ -46,7 +46,7 @@ ul
|
|
46
46
|
|
47
47
|
.ui-dynatree-disabled ul.dynatree-container
|
48
48
|
opacity: 0.5
|
49
|
-
/*
|
49
|
+
/* filter: alpha(opacity=50); /* Yields a css warning
|
50
50
|
background-color: silver
|
51
51
|
|
52
52
|
/*******************************************************************************
|
@@ -56,27 +56,27 @@ span
|
|
56
56
|
&.dynatree-empty, &.dynatree-vline, &.dynatree-connector, &.dynatree-expander, &.dynatree-icon, &.dynatree-checkbox, &.dynatree-radio, &.dynatree-drag-helper-img
|
57
57
|
width: 16px
|
58
58
|
height: 16px
|
59
|
-
/*
|
60
|
-
/*
|
59
|
+
/* display: -moz-inline-box; /* @ FF 1+2 removed for issue 221
|
60
|
+
/* -moz-box-align: start; /* issue 221
|
61
61
|
display: inline-block
|
62
62
|
/* Required to make a span sizeable
|
63
63
|
vertical-align: top
|
64
64
|
background-repeat: no-repeat
|
65
65
|
background-position: left
|
66
|
-
background-image:
|
66
|
+
background-image: url("icons.gif")
|
67
67
|
background-position: 0 0
|
68
68
|
|
69
69
|
#dynatree-drop-marker
|
70
70
|
width: 16px
|
71
71
|
height: 16px
|
72
|
-
/*
|
73
|
-
/*
|
72
|
+
/* display: -moz-inline-box; /* @ FF 1+2 removed for issue 221
|
73
|
+
/* -moz-box-align: start; /* issue 221
|
74
74
|
display: inline-block
|
75
75
|
/* Required to make a span sizeable
|
76
76
|
vertical-align: top
|
77
77
|
background-repeat: no-repeat
|
78
78
|
background-position: left
|
79
|
-
background-image:
|
79
|
+
background-image: url("icons.gif")
|
80
80
|
background-position: 0 0
|
81
81
|
|
82
82
|
/** Used by 'icon' node option:
|
@@ -115,14 +115,14 @@ span
|
|
115
115
|
/*******************************************************************************
|
116
116
|
* Expander icon
|
117
117
|
* Note: IE6 doesn't correctly evaluate multiples class names,
|
118
|
-
*
|
118
|
+
* so we create combined class names that can be used in the CSS.
|
119
119
|
*
|
120
120
|
* Prefix: dynatree-exp-
|
121
121
|
* 1st character: 'e': expanded, 'c': collapsed
|
122
122
|
* 2nd character (optional): 'd': lazy (Delayed)
|
123
123
|
* 3rd character (optional): 'l': Last sibling
|
124
124
|
|
125
|
-
.dynatree-exp-cl span.dynatree-expander, .dynatree-exp-cd span.dynatree-expander, .dynatree-exp-cdl span.dynatree-expander
|
125
|
+
.dynatree-exp-cl! span.dynatree-expander, .dynatree-exp-cd! span.dynatree-expander, .dynatree-exp-cdl! span.dynatree-expander
|
126
126
|
|
127
127
|
.dynatree-exp-e span.dynatree-expander, .dynatree-exp-ed span.dynatree-expander, .dynatree-exp-el span.dynatree-expander, .dynatree-exp-edl span.dynatree-expander
|
128
128
|
background-position: -32px -80px
|
@@ -132,7 +132,7 @@ span
|
|
132
132
|
|
133
133
|
.dynatree-loading span.dynatree-expander
|
134
134
|
background-position: 0 0
|
135
|
-
background-image:
|
135
|
+
background-image: url("loading.gif")
|
136
136
|
|
137
137
|
/*******************************************************************************
|
138
138
|
* Checkbox icon
|
@@ -177,7 +177,7 @@ span.dynatree-radio
|
|
177
177
|
/*******************************************************************************
|
178
178
|
* Node type icon
|
179
179
|
* Note: IE6 doesn't correctly evaluate multiples class names,
|
180
|
-
*
|
180
|
+
* so we create combined class names that can be used in the CSS.
|
181
181
|
*
|
182
182
|
* Prefix: dynatree-ico-
|
183
183
|
* 1st character: 'e': expanded, 'c': collapsed
|
@@ -199,10 +199,11 @@ span.dynatree-icon
|
|
199
199
|
/* Status node icons
|
200
200
|
|
201
201
|
.dynatree-statusnode-wait span.dynatree-icon
|
202
|
-
background-image:
|
202
|
+
background-image: url("loading.gif")
|
203
203
|
|
204
204
|
.dynatree-statusnode-error span.dynatree-icon
|
205
205
|
background-position: 0px -112px
|
206
|
+
/* background-image: url("ltError.gif");
|
206
207
|
|
207
208
|
/*******************************************************************************
|
208
209
|
* Node titles
|
@@ -211,8 +212,8 @@ span.dynatree-icon
|
|
211
212
|
* Removed again for issue 165; (133 couldn't be reproduced)
|
212
213
|
|
213
214
|
span.dynatree-node
|
214
|
-
/*
|
215
|
-
/*
|
215
|
+
/* display: -moz-inline-box; /* issue 133, 165, 172, 192. removed for issue 221
|
216
|
+
/* -moz-box-align: start; /* issue 221
|
216
217
|
/* display: inline-block; /* Required to make a span sizeable
|
217
218
|
|
218
219
|
/* Remove blue color and underline from title links
|
@@ -224,13 +225,13 @@ ul.dynatree-container a
|
|
224
225
|
vertical-align: top
|
225
226
|
margin: 0px
|
226
227
|
margin-left: 3px
|
227
|
-
/*
|
228
|
+
/* outline: 0; /* @ Firefox, prevent dotted border after click
|
228
229
|
/* Set transparent border to prevent jumping when active node gets a border
|
229
230
|
* (we can do this, because this theme doesn't use vertical lines)
|
230
231
|
border: 1px solid white
|
231
232
|
/* Note: 'transparent' would not work in IE6
|
232
233
|
&:hover
|
233
|
-
/*
|
234
|
+
/* text-decoration: underline;
|
234
235
|
background: #F2F7FD
|
235
236
|
/* light blue
|
236
237
|
border-color: #B8D6FB
|
@@ -240,13 +241,13 @@ span
|
|
240
241
|
&.dynatree-node a
|
241
242
|
display: inline-block
|
242
243
|
/* Better alignment, when title contains <br>
|
243
|
-
/*
|
244
|
+
/* vertical-align: top;
|
244
245
|
padding-left: 3px
|
245
246
|
padding-right: 3px
|
246
247
|
/* Otherwise italic font will be outside bounds
|
247
|
-
/*
|
248
|
+
/* line-height: 16px; /* should be the same as img height, in case 16 px
|
248
249
|
&.dynatree-folder a
|
249
|
-
/*
|
250
|
+
/* font-weight: bold;
|
250
251
|
/* custom
|
251
252
|
|
252
253
|
ul.dynatree-container a:focus
|
@@ -258,10 +259,10 @@ span
|
|
258
259
|
background-color: #EFEBDE
|
259
260
|
/* gray
|
260
261
|
&.dynatree-has-children a
|
261
|
-
/*
|
262
|
-
&.dynatree-expanded a
|
262
|
+
/* font-style: oblique; /* custom:
|
263
|
+
&.dynatree-expanded! a
|
263
264
|
&.dynatree-selected a
|
264
|
-
/*
|
265
|
+
/* color: green;
|
265
266
|
font-style: italic
|
266
267
|
&.dynatree-active a
|
267
268
|
border: 1px solid #99DEFD
|
@@ -287,7 +288,7 @@ span.dynatree-drag-helper-img
|
|
287
288
|
div
|
288
289
|
&.dynatree-drag-helper
|
289
290
|
/* border-color: green;
|
290
|
-
*
|
291
|
+
* background-color: red;
|
291
292
|
&.dynatree-drop-accept span.dynatree-drag-helper-img
|
292
293
|
background-position: -32px -112px
|
293
294
|
&.dynatree-drag-helper.dynatree-drop-reject
|
@@ -318,7 +319,7 @@ span
|
|
318
319
|
color: gray
|
319
320
|
&.dynatree-drop-target
|
320
321
|
/*border: 1px solid gray;
|
321
|
-
a
|
322
|
+
a!
|
322
323
|
&.dynatree-drop-accept a
|
323
324
|
/*border: 1px solid green;
|
324
325
|
background-color: #3169C6 !important
|
@@ -327,6 +328,6 @@ span
|
|
327
328
|
text-decoration: none
|
328
329
|
&.dynatree-drop-reject
|
329
330
|
/*border: 1px solid red;
|
330
|
-
&.dynatree-drop-after a
|
331
|
+
&.dynatree-drop-after! a
|
331
332
|
|
332
333
|
/*** Target node while dragging cursor is over it ****************************
|