dynatree-rails 0.0.4 → 0.1.0
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.
- 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 ****************************
|