您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Expand Tree Button for TreeView in BlueCat Address Manager
- // ==UserScript==
- // @name BlueCat Address Manager Expand Tree Button
- // @namespace *
- // @description Expand Tree Button for TreeView in BlueCat Address Manager
- // @include */app*
- // @license MIT
- // @version 9
- // @grant none
- // @author Marius Galm
- // @copyright 2018, Marius Galm
- // @icon https://www.bluecatnetworks.com/wp-content/uploads/2018/03/cropped-bluecat-favicon-32x32.png
- // ==/UserScript==
- // do when there are container with class "TreeExpandClosed"
- // trigger click event on "TreeExpand" class object
- function expandLevel() {
- if (document.getElementsByClassName("TreeExpandClosed").length > 0) {
- var parent_els = document.getElementsByClassName("TreeExpandClosed");
- for (i = 0; i < parent_els.length; i++) {
- var els = parent_els[i].getElementsByClassName("TreeExpand");
- for (j = 0; j < els.length; j++) {
- els[j].click();
- }
- }
- // scroll back to top because the BlueCat interface gets jumpy while expanding
- scroll(0,0);
- document.getElementById('collapseButton').innerHTML = stripTag(document.getElementById('collapseButton').innerHTML);
- } else {
- var old = document.getElementById('expandButton').innerHTML;
- document.getElementById('expandButton').innerHTML = "<s>"+old+"</s>";
- }
- }
- // do when there are container with class "TreeExpandOpen"
- // trigger click event on "TreeExpand" class object
- function collapseLevel() {
- if ((document.getElementsByClassName("TreeExpandOpen").length > 0)||(document.getElementsByClassName("TreeStateChildrenYes-ExpandOpen").length > 0)) {
- var parent_els = document.getElementsByClassName("TreeExpandOpen");
- for (i = 0; i < parent_els.length; i++) {
- var els = parent_els[i].getElementsByClassName("TreeExpand");
- for (j = 0; j < els.length; j++) {
- els[j].click();
- }
- }
- // scroll back to top because the BlueCat interface gets jumpy while expanding
- scroll(0,0);
- document.getElementById('expandButton').innerHTML = stripTag(document.getElementById('expandButton').innerHTML);
- } else {
- var old = document.getElementById('collapseButton').innerHTML;
- document.getElementById('collapseButton').innerHTML = "<s>"+old+"</s>";
- }
- }
- // remove the disable style
- function stripTag(html)
- {
- html = html.replace(/<s>/g, "");
- html = html.replace(/<\/s>/g, "");
- return html;
- }
- if (document.readyState === "interactive" ) {
- var page = document.childNodes[2].nodeValue;
- if (/ Page: ConfigurationPage /.test(page)) {
- var subtab = document.getElementsByClassName("TabPanelLabelActive")[0];
- if (subtab.innerHTML.trim() == "IPv4" ) {
- // Add button to first table
- var topBars = document.getElementsByClassName('value-tree-topToolBar');
- if (( topBars !== undefined ) || (topBars.length <= 0)) {
- var topBar = topBars[0];
- if ( topBar !== undefined ) {
- var comboBars = topBar.getElementsByClassName('combo-button-bar');
- if ((comboBars !== undefined) || (comboBars.length <= 0)) {
- var comboBar = comboBars[0];
- var tBody = comboBar.getElementsByTagName('tbody')[0];
- var tR = tBody.getElementsByTagName('tr')[0];
- var w = tR.insertCell(-1);
- w.innerHTML='<div class="separator"></div>';
- var x = tR.insertCell(-1);
- x.innerHTML='<span id="expandButton"><b>Expand</b></span>';
- var lable = document.getElementById('expandButton');
- lable.addEventListener("click",() => { expandLevel(); },false);
- var y = tR.insertCell(-1);
- y.innerHTML='<div class="separator"></div>';
- var z = tR.insertCell(-1);
- z.innerHTML='<span id="collapseButton"><s><b>Collapse</b></s></span>';
- var lable2 = document.getElementById('collapseButton');
- lable2.addEventListener("click",() => { collapseLevel(); },false);
- }
- }
- }
- } else if (subtab.innerHTML.trim() == "Views" ) {
- // Add button to first table
- var topBars = document.getElementsByClassName('value-tree-topToolBar');
- if (( topBars !== undefined ) || (topBars.length <= 0)) {
- var topBar = topBars[0];
- if ( topBar !== undefined ) {
- var comboBars = topBar.getElementsByClassName('combo-button-bar');
- if ((comboBars !== undefined) || (comboBars.length <= 0)) {
- var comboBar = comboBars[0];
- var tBody = comboBar.getElementsByTagName('tbody')[0];
- var tR = tBody.getElementsByTagName('tr')[0];
- var w = tR.insertCell(-1);
- w.innerHTML='<div class="separator"></div>';
- var x = tR.insertCell(-1);
- x.innerHTML='<span id="expandButton"><b>Expand</b></span>';
- var lable = document.getElementById('expandButton');
- lable.addEventListener("click",() => { expandLevel(); },false);
- var y = tR.insertCell(-1);
- y.innerHTML='<div class="separator"></div>';
- var z = tR.insertCell(-1);
- z.innerHTML='<span id="collapseButton"><s><b>Collapse</b></s></span>';
- var lable2 = document.getElementById('collapseButton');
- lable2.addEventListener("click",() => { collapseLevel(); },false);
- }
- }
- }
- } else if (subtab.innerHTML.trim() == "IPv6" ) {
- // Unsupported for now :D
- }
- } else if (/ Page: GroupList /.test(page)) {
- // Add button to first table
- var topBars = document.getElementsByClassName('value-tree-topToolBar');
- if ((topBars !== undefined) || (topBars.length <= 0)) {
- var topBar = topBars[0];
- if ( topBar !== undefined ) {
- var comboBars = topBar.getElementsByClassName('combo-button-bar');
- if ((comboBars !== undefined) || (comboBars.length <= 0)) {
- var comboBar = comboBars[0];
- var tBody = comboBar.getElementsByTagName('tbody')[0];
- var tR = tBody.getElementsByTagName('tr')[0];
- var w = tR.insertCell(-1);
- w.innerHTML='<div class="separator"></div>';
- var x = tR.insertCell(-1);
- x.innerHTML='<span id="expandButton"><b>Expand</b></span>';
- var lable = document.getElementById('expandButton');
- lable.addEventListener("click",() => { expandLevel(); },false);
- var y = tR.insertCell(-1);
- y.innerHTML='<div class="separator"></div>';
- var z = tR.insertCell(-1);
- z.innerHTML='<span id="collapseButton"><s><b>Collapse</b></s></span>';
- var lable2 = document.getElementById('collapseButton');
- lable2.addEventListener("click",() => { collapseLevel(); },false);
- }
- }
- }
- } else if (/ Page: TagGroup /.test(page)) {
- // Add button to first table
- var topBars = document.getElementsByClassName('value-tree-topToolBar');
- if (( topBars !== undefined ) || (topBars.length <= 0)) {
- var topBar = topBars[0];
- if ( topBar !== undefined ) {
- var comboBars = topBar.getElementsByClassName('combo-button-bar');
- if ((comboBars !== undefined) || (comboBars.length <= 0)) {
- var comboBar = comboBars[0];
- var tBody = comboBar.getElementsByTagName('tbody')[0];
- var tR = tBody.getElementsByTagName('tr')[0];
- var w = tR.insertCell(-1);
- w.innerHTML='<div class="separator"></div>';
- var x = tR.insertCell(-1);
- x.innerHTML='<span id="expandButton"><b>Expand</b></span>';
- var lable = document.getElementById('expandButton');
- lable.addEventListener("click",() => { expandLevel(); },false);
- var y = tR.insertCell(-1);
- y.innerHTML='<div class="separator"></div>';
- var z = tR.insertCell(-1);
- z.innerHTML='<span id="collapseButton"><s><b>Collapse</b></s></span>';
- var lable2 = document.getElementById('collapseButton');
- lable2.addEventListener("click",() => { collapseLevel(); },false);
- }
- }
- }
- }
- }