<!DOCTYPE html>
<html>
<head>
	<title>Fancytree - Example: Glyph Extension / Bootstrap Theme</title>

	<meta http-equiv="content-type" content="text/html; charset=utf-8">
<!--
	<meta name="viewport" content="width=device-width, initial-scale=1">
-->
	<!--
	NOTE: "Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3"
	-->
	<script src="//code.jquery.com/jquery-1.12.4.min.js"></script>
	<script src="//code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<!--
	<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css">
	<link href="../src/skin-awesome/ui.fancytree.css" rel="stylesheet" class="skinswitcher">
	<link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css">
-->
	<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
	<script src="//netdna.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

	<link href="../src/skin-bootstrap/ui.fancytree.css" rel="stylesheet"
		class="skinswitcher">

	<script src="../src/jquery.fancytree.js"></script>
	<script src="../src/jquery.fancytree.dnd.js"></script>
	<script src="../src/jquery.fancytree.edit.js"></script>
	<script src="../src/jquery.fancytree.glyph.js"></script>
	<script src="../src/jquery.fancytree.table.js"></script>
	<script src="../src/jquery.fancytree.wide.js"></script>

<!-- Start_Exclude: This block is not part of the sample code -->
	<link href="../lib/prettify.css" rel="stylesheet">
	<script src="../lib/prettify.js"></script>
	<link href="../demo/sample.css" rel="stylesheet">
	<script src="../demo/sample.js"></script>

	<style type="text/css">
		body {
			padding: 15px;
		}
		ul.fancytree-container {
			border: none;
		}
		/* Reduce bootstrap's default 'panel' padding: */
		div#tree {
			padding: 3px 5px;
		}
	</style>
<!-- End_Exclude -->

<style type="text/css">
	/* Define custom width and alignment of table columns */
	#treetable {
		table-layout: fixed;
	}
	#treetable tr td:nth-of-type(1) {
		text-align: right;
	}
	#treetable tr td:nth-of-type(2) {
		text-align: center;
	}
	#treetable tr td:nth-of-type(3) {
		min-width: 100px;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
</style>


<!-- Add code to initialize the tree when the document is loaded: -->
<script type="text/javascript">
	glyph_opts = {
		map: {
			doc: "glyphicon glyphicon-file",
			docOpen: "glyphicon glyphicon-file",
			checkbox: "glyphicon glyphicon-unchecked",
			checkboxSelected: "glyphicon glyphicon-check",
			checkboxUnknown: "glyphicon glyphicon-share",
			dragHelper: "glyphicon glyphicon-play",
			dropMarker: "glyphicon glyphicon-arrow-right",
			error: "glyphicon glyphicon-warning-sign",
			expanderClosed: "glyphicon glyphicon-menu-right",
			expanderLazy: "glyphicon glyphicon-menu-right",  // glyphicon-plus-sign
			expanderOpen: "glyphicon glyphicon-menu-down",  // glyphicon-collapse-down
			folder: "glyphicon glyphicon-folder-close",
			folderOpen: "glyphicon glyphicon-folder-open",
			loading: "glyphicon glyphicon-refresh glyphicon-spin"
		}
	};
	$(function(){
		// Initialize Fancytree
		$("#tree").fancytree({
			extensions: ["dnd", "edit", "glyph", "wide"],
			checkbox: true,
			dnd: {
				focusOnClick: true,
				dragStart: function(node, data) { return true; },
				dragEnter: function(node, data) { return false; },
				dragDrop: function(node, data) { data.otherNode.copyTo(node, data.hitMode); }
			},
			glyph: glyph_opts,
			selectMode: 2,
			source: {url: "ajax-tree-taxonomy.json", debugDelay: 1000},
			toggleEffect: { effect: "drop", options: {direction: "left"}, duration: 400 },
			wide: {
				iconWidth: "1em",       // Adjust this if @fancy-icon-width != "16px"
				iconSpacing: "0.5em",   // Adjust this if @fancy-icon-spacing != "3px"
				labelSpacing: "0.1em",  // Adjust this if padding between icon and label != "3px"
				levelOfs: "1.5em"       // Adjust this if ul padding != "16px"
			},

			icon: function(event, data){
				// if( data.node.isFolder() ) {
				// 	return "glyphicon glyphicon-book";
				// }
			},
			lazyLoad: function(event, data) {
				data.result = {url: "ajax-sub2.json", debugDelay: 1000};
			}
		});

		$("#treetable").fancytree({
			extensions: ["dnd", "edit", "glyph", "table"],
			checkbox: true,
			dnd: {
				focusOnClick: true,
				dragStart: function(node, data) { return true; },
				dragEnter: function(node, data) { return true; },
				dragDrop: function(node, data) { data.otherNode.copyTo(node, data.hitMode); }
			},
			glyph: glyph_opts,
			source: {url: "ajax-tree-taxonomy.json", debugDelay: 1000},
			table: {
				checkboxColumnIdx: 1,
				nodeColumnIdx: 2
			},

			activate: function(event, data) {
			},
			lazyLoad: function(event, data) {
				data.result = {url: "ajax-sub2.json", debugDelay: 1000};
			},
			renderColumns: function(event, data) {
				var node = data.node,
					$tdList = $(node.tr).find(">td");
				$tdList.eq(0).text(node.getIndexHier());
				$tdList.eq(3).text(!!node.folder);
			}
		});
	});
</script>

<!-- Start_Exclude: This block is not part of the sample code -->
<script>
$(function(){
	$("#btnExpandAll").click(function(){
		$("#tree").fancytree("getTree").visit(function(node){
			node.setExpanded(true);
		});
	});
	$("#btnCollapseAll").click(function(){
		$("#tree").fancytree("getTree").visit(function(node){
			node.setExpanded(false);
		});
	});

	$( "#fontSize" ).change(function(){
		$("#tree .fancytree-container").css("font-size", $(this).prop("value") + "pt");
	});//.prop("value", 12);

	$("#plainTreeStyles").on("change", "input", function(e){
		$("#tree ul").toggleClass($(this).data("class"), $(this).is(":checked"));
	});
	$("#bootstrapTableStyles").on("change", "input", function(e){
		$("#treetable").toggleClass($(this).data("class"), $(this).is(":checked"));
	});
});
</script>
<!-- End_Exclude -->

</head>

<body>
	<div class="panel panel-default">
		<div class="panel-heading">
			<h1>Example: Bootstrap theme</h1>
		</div>
		<div class="panel-body">
			<p>
				The 'glyph' extension adds <code>icon-...</code> classes to the
				node's <code>span</code> tags, so scalable vector icons as provided by
				<a href="http://fortawesome.github.io/Font-Awesome/" class="external" target="_blank">Font Awesome</a> or <a href="http://getbootstrap.com/components/" class="external" target="_blank">Bootstrap Glyphicons</a> can be used.
			</p>
			<p>
				The theme defines some colors from bootstrap. To change it, run
				<a href="https://github.com/mar10/fancytree/wiki/HowtoContribute">grunt dev</a> and edit the
				<a href="https://github.com/mar10/fancytree/blob/master/src/skin-bootstrap/ui.fancytree.less" class="external" target="_blank">LESS definition</a>.
			</p>
			<p>
				<b>Status</b>: alpha
			</p>
		</div>
	</div>

	<p>
		Font size: <span id="curSize"></span>
		<input id="fontSize" type="number" min="4" max="48" value="10"> pt
	</p>

	<h3> Plain tree </h3>

	<p id="plainTreeStyles">
		<b>Add container class:</b><br>
<!--
		<label><input type="checkbox" data-class="fancytree-colorize-hover"> fancytree-colorize-hover</label>
-->
		<label><input type="checkbox" data-class="fancytree-colorize-selected"> fancytree-colorize-selected</label>
	</p>

	<div class="panel panel-default">
		<div class="panel-heading">
			<b>Taxonomy</b>
		</div>
		<div id="tree" class="panel-body fancytree-colorize-hover fancytree-fade-expander">
		</div>
		<div class="panel-footer">
			<button id="btnExpandAll" class="btn btn-xs btn-primary">Expand all</button>
			<button id="btnCollapseAll" class="btn btn-xs btn-warning">Collapse all</button>
		</div>
	</div>

	<h3> Table tree </h3>

	<p id="bootstrapTableStyles">
		<b>Add table class:</b><br>
		<label><input type="checkbox" data-class="table-bordered"> table-bordered</label>
		<label><input type="checkbox" data-class="table-condensed" checked="checked"> table-condensed</label>
		<label><input type="checkbox" data-class="table-striped" checked="checked"> table-striped</label>
		<label><input type="checkbox" data-class="table-hover" checked="checked"> table-hover</label>
		<label><input type="checkbox" data-class="table-responsive"> table-responsive</label>
		<label><input type="checkbox" data-class="fancytree-colorize-selected"> fancytree-colorize-selected</label>
	</p>

	<table id="treetable" class="table table-condensed table-hover table-striped fancytree-fade-expander">
		<colgroup>
			<col width="80px"></col>
			<col width="30px"></col>
			<col width="*"></col>
			<col width="100px"></col>
			<col width="100px"></col>
			<col width="100px"></col>
		</colgroup>
		<thead>
			<tr> <th></th> <th></th> <th>Classification</th> <th>Folder</th> <th></th> <th></th> </tr>
		</thead>
		<tbody>
			<tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr>
		</tbody>
	</table>


	<!-- Start_Exclude: This block is not part of the sample code -->
	<hr>
	<p class="sample-links  no_code">
		<a class="hideInsideFS" href="https://github.com/mar10/fancytree/">Fancytree project home</a>
		<a class="hideOutsideFS" href="#">Link to this page</a>
		<a class="hideInsideFS" href="index.html">Example Browser</a>
		<a href="#" id="codeExample">View source code</a>
	</p>
	<pre id="sourceCode" class="prettyprint" style="display:none"></pre>
	<!-- End_Exclude -->
</body>
</html>