sending jquery to the repos
BIN
jquery/images/file.gif
Normal file
|
After Width: | Height: | Size: 110 B |
BIN
jquery/images/folder.gif
Normal file
|
After Width: | Height: | Size: 106 B |
BIN
jquery/images/tv-collapsable-last.gif
Normal file
|
After Width: | Height: | Size: 85 B |
BIN
jquery/images/tv-collapsable.gif
Normal file
|
After Width: | Height: | Size: 781 B |
BIN
jquery/images/tv-expandable-last.gif
Normal file
|
After Width: | Height: | Size: 89 B |
BIN
jquery/images/tv-expandable.gif
Normal file
|
After Width: | Height: | Size: 787 B |
BIN
jquery/images/tv-item-last.gif
Normal file
|
After Width: | Height: | Size: 65 B |
BIN
jquery/images/tv-item.gif
Normal file
|
After Width: | Height: | Size: 750 B |
4996
jquery/jquery.js
vendored
Normal file
239
jquery/jquery.treeview.js
Normal file
@@ -0,0 +1,239 @@
|
||||
/*
|
||||
* Treeview 1.2 - jQuery plugin to hide and show branches of a tree
|
||||
*
|
||||
* Copyright (c) 2006 J<>rn Zaefferer, Myles Angell
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
* Revision: $Id: jquery.treeview.js,v 1.1 2008/04/20 13:30:47 g000ze Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Takes an unordered list and makes all branches collapsable.
|
||||
*
|
||||
* The "treeview" class is added if not already present.
|
||||
*
|
||||
* To hide branches on first display, mark their li elements with
|
||||
* the class "closed". If the "collapsed" option is used, mark intially open
|
||||
* branches with class "open".
|
||||
*
|
||||
* @example .treeview, .treeview ul {
|
||||
* padding: 0;
|
||||
* margin: 0;
|
||||
* list-style: none;
|
||||
* }
|
||||
*
|
||||
* .treeview li {
|
||||
* margin: 0;
|
||||
* padding: 4px 0 3px 20px;
|
||||
* }
|
||||
*
|
||||
* .treeview li { background: url(images/tv-item.gif) 0 0 no-repeat; }
|
||||
* .treeview .collapsable { background-image: url(images/tv-collapsable.gif); }
|
||||
* .treeview .expandable { background-image: url(images/tv-expandable.gif); }
|
||||
* .treeview .last { background-image: url(images/tv-item-last.gif); }
|
||||
* .treeview .lastCollapsable { background-image: url(images/tv-collapsable-last.gif); }
|
||||
* .treeview .lastExpandable { background-image: url(images/tv-expandable-last.gif); }
|
||||
* @desc The following styles are necessary in your stylesheet. There is are alternative sets of images available.
|
||||
*
|
||||
* @example $("ul").Treeview();
|
||||
* @before <ul>
|
||||
* <li>Item 1
|
||||
* <ul>
|
||||
* <li>Item 1.1</li>
|
||||
* </ul>
|
||||
* </li>
|
||||
* <li class="closed">Item 2 (starts closed)
|
||||
* <ul>
|
||||
* <li>Item 2.1
|
||||
* <ul>
|
||||
* <li>Item 2.1.1</li>
|
||||
* <li>Item 2.1.2</li>
|
||||
* </ul>
|
||||
* </li>
|
||||
* <li>Item 2.2</li>
|
||||
* </ul>
|
||||
* </li>
|
||||
* <li>Item 3</li>
|
||||
* </ul>
|
||||
* @desc Basic usage example
|
||||
*
|
||||
* @example $("ul").Treeview({ speed: "fast", collapsed: true});
|
||||
* @before <ul>
|
||||
* <li class="open">Item 1 (starts open)
|
||||
* <ul>
|
||||
* <li>Item 1.1</li>
|
||||
* </ul>
|
||||
* </li>
|
||||
* <li>Item 2
|
||||
* <ul>
|
||||
* <li>Item 2.1</li>
|
||||
* <li>Item 2.2</li>
|
||||
* </ul>
|
||||
* </li>
|
||||
* </ul>
|
||||
* @desc Create a treeview that starts collapsed. Toggling branches is animated.
|
||||
*
|
||||
* @example $("ul").Treeview({ control: #treecontrol });
|
||||
* @before <div id="treecontrol">
|
||||
* <a href="#">Collapse All</a>
|
||||
* <a href="#">Expand All</a>
|
||||
* <a href="#">Toggle All</a>
|
||||
* </div>
|
||||
* @desc Creates a treeview that can be controlled with a few links.
|
||||
* Very likely to be changed/improved in future versions.
|
||||
*
|
||||
* @param Map options Optional settings to configure treeview
|
||||
* @option String|Number speed Speed of animation, see animate() for details. Default: none, no animation
|
||||
* @option Boolean collapsed Start with all branches collapsed. Default: none, all expanded
|
||||
* @option <Content> control Container for a treecontrol, see last example.
|
||||
* @option Boolean unique Set to allow only one branch on one level to be open
|
||||
* (closing siblings which opening). Default: none
|
||||
* @option Function toggle Callback when toggling a branch.
|
||||
* Arguments: "this" refers to the UL that was shown or hidden.
|
||||
* Works only with speed option set (set speed: 1 to enable callback without animations).
|
||||
* Default: none
|
||||
* @type jQuery
|
||||
* @name Treeview
|
||||
* @cat Plugins/Treeview
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
|
||||
// classes used by the plugin
|
||||
// need to be styled via external stylesheet, see first example
|
||||
var CLASSES = {
|
||||
open: "open",
|
||||
closed: "closed",
|
||||
expandable: "expandable",
|
||||
collapsable: "collapsable",
|
||||
lastCollapsable: "lastCollapsable",
|
||||
lastExpandable: "lastExpandable",
|
||||
last: "last",
|
||||
hitarea: "hitarea"
|
||||
};
|
||||
|
||||
// styles for hitareas
|
||||
var hitareaCSS = {
|
||||
height: 15,
|
||||
width: 15,
|
||||
marginLeft: "-15px",
|
||||
"float": "left",
|
||||
cursor: "pointer"
|
||||
};
|
||||
|
||||
// ie specific styles for hitareas
|
||||
if( $.browser.msie ) {
|
||||
$.extend( hitareaCSS, {
|
||||
background: "#fff",
|
||||
filter: "alpha(opacity=0)",
|
||||
display: "inline"
|
||||
});
|
||||
}
|
||||
|
||||
$.extend($.fn, {
|
||||
swapClass: function(c1, c2) {
|
||||
return this.each(function() {
|
||||
var $this = $(this);
|
||||
if ( $.className.has(this, c1) )
|
||||
$this.removeClass(c1).addClass(c2);
|
||||
else if ( $.className.has(this, c2) )
|
||||
$this.removeClass(c2).addClass(c1);
|
||||
});
|
||||
},
|
||||
replaceclass: function(c1, c2) {
|
||||
return this.each(function() {
|
||||
var $this = $(this);
|
||||
if ( $.className.has(this, c1) )
|
||||
$this.removeClass(c1).addClass(c2);
|
||||
});
|
||||
},
|
||||
Treeview: function(settings) {
|
||||
|
||||
// currently no defaults necessary, all implicit
|
||||
settings = $.extend({}, settings);
|
||||
|
||||
// factory for treecontroller
|
||||
function treeController(tree, control) {
|
||||
// factory for click handlers
|
||||
function handler(filter) {
|
||||
return function() {
|
||||
// reuse toggle event handler, applying the elements to toggle
|
||||
// start searching for all hitareas
|
||||
toggler.apply( $("div." + CLASSES.hitarea, tree).filter(function() {
|
||||
// for plain toggle, no filter is provided, otherwise we need to check the parent element
|
||||
return filter ? $(this).parent("." + filter).length : true;
|
||||
}) );
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// click on first element to collapse tree
|
||||
$(":eq(0)", control).click( handler(CLASSES.collapsable) );
|
||||
// click on second to expand tree
|
||||
$(":eq(1)", control).click( handler(CLASSES.expandable) );
|
||||
// click on third to toggle tree
|
||||
$(":eq(2)", control).click( handler() );
|
||||
}
|
||||
|
||||
// handle toggle event
|
||||
function toggler() {
|
||||
// this refers to hitareas, we need to find the parent lis first
|
||||
$( this ).parent()
|
||||
// swap classes
|
||||
.swapClass( CLASSES.collapsable, CLASSES.expandable )
|
||||
.swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
|
||||
// find child lists
|
||||
.find( ">ul" )
|
||||
// toggle them
|
||||
.toggle( settings.speed, settings.toggle );
|
||||
if ( settings.unique ) {
|
||||
$( this ).parent()
|
||||
.siblings()
|
||||
.replaceclass( CLASSES.collapsable, CLASSES.expandable )
|
||||
.replaceclass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
|
||||
.find( ">ul" )
|
||||
.hide( settings.speed, settings.toggle );
|
||||
}
|
||||
}
|
||||
|
||||
// add treeview class to activate styles
|
||||
this.addClass("treeview");
|
||||
|
||||
// mark last tree items
|
||||
$("li:last-child", this).addClass(CLASSES.last);
|
||||
|
||||
// collapse whole tree, or only those marked as closed, anyway except those marked as open
|
||||
$( (settings.collapsed ? "li" : "li." + CLASSES.closed) + ":not(." + CLASSES.open + ") > ul", this).hide();
|
||||
|
||||
// find all tree items with child lists
|
||||
$("li[ul]", this)
|
||||
// handle closed ones first
|
||||
.filter("[>ul:hidden]")
|
||||
.addClass(CLASSES.expandable)
|
||||
.swapClass(CLASSES.last, CLASSES.lastExpandable)
|
||||
.end()
|
||||
// handle open ones
|
||||
.not("[>ul:hidden]")
|
||||
.addClass(CLASSES.collapsable)
|
||||
.swapClass(CLASSES.last, CLASSES.lastCollapsable)
|
||||
.end()
|
||||
// append hitarea
|
||||
.prepend("<div class=\"" + CLASSES.hitarea + "\">")
|
||||
// find hitarea
|
||||
.find("div." + CLASSES.hitarea)
|
||||
// apply styles to hitarea
|
||||
.css(hitareaCSS)
|
||||
// apply toggle event to hitarea
|
||||
.toggle( toggler, toggler );
|
||||
|
||||
// if control option is set, create the treecontroller
|
||||
if ( settings.control )
|
||||
treeController(this, settings.control);
|
||||
|
||||
return this;
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||