// Licensed to Cloudera, Inc. under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. Cloudera, Inc. licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. $.fn.extend({ treed: function (o) { var openedClass = 'fa-angle-down'; var closedClass = 'fa-angle-right'; var tree = $(this); tree.addClass("tree"); tree.find('li').has("ul").each(function () { var branch = $(this); branch.prepend(""); branch.addClass('branch'); branch.on('click', function (e) { if (this == e.target) { var icon = $(this).children('i:first'); icon.toggleClass(openedClass + " " + closedClass); $(this).children().children().toggle(); $(this).children().children().each(function () { var child = $(this); child.find('i:first').height(child.find('a').height() - 6); }); } }); }); tree.find('li').not(":has(ul)").each(function () { var branch = $(this); branch.prepend(""); }); tree.find('.branch .indicator').each(function () { $(this).on('click', function () { $(this).closest('li').click(); }); }); tree.find('.branch>a').each(function () { $(this).on('click', function (e) { $(this).closest('li').click(); }); }); } });