Skip to content
Snippets Groups Projects
sample-ext-bootstrap.html 9.14 KiB
Newer Older
  • Learn to ignore specific revisions
  • Laura Cappelli's avatar
    Laura Cappelli committed
    <!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>