Files
cacti/include/themes/dark/main.js
T
cigamit 93ff2bf4bb Resolving Issues #1228, #2888, and #3021
* Any tree or branch with a long name force main content off screen
* Long hostnames cause template filter to go off page
* Tree view cuts off at the bottom of page on modern theme
* Introducing new settings Min Tree Width and Max Tree Width in Settings > Visual and User Profile.
* Corrects a major slowdown in graph templates are presented due to removal of very slow textWidth() function.
2019-11-10 11:43:49 -06:00

259 lines
7.7 KiB
JavaScript

// Host Autocomplete Magic
var pageName = basename($(location).attr('pathname'));
function themeReady() {
var hostTimer = false;
var clickTimeout = false;
var hostOpen = false;
$('body').css('height', $(window).height());
$('.formItemDescription').hide();
keepWindowSize();
// Setup the navigation menu
setMenuVisibility();
// Add nice search filter to filters
if ($('input[id="filter"]').length > 0 && $('input[id="filter"] > i[class="fa fa-search filter"]').length < 1) {
$('input[id="filter"]').after("<i class='fa fa-search filter'/>").attr('autocomplete', 'off').attr('placeholder', searchFilter).parent('td').css('white-space', 'nowrap');
}
if ($('input[id="filterd"]').length > 0 && $('input[id="filterd"] > i[class="fa fa-search filter"]').length < 1) {
$('input[id="filterd"]').after("<i class='fa fa-search filter'/>").attr('autocomplete', 'off').attr('placeholder', searchFilter).parent('td').css('white-space', 'nowrap');
}
if ($('input[id="rfilter"]').length > 0 && $('input[id="rfilter"] > i[class="fa fa-search filter"]').length < 1) {
$('input[id="rfilter"]').after("<i class='fa fa-search filter'/>").attr('autocomplete', 'off').attr('placeholder', searchRFilter).parent('td').css('white-space', 'nowrap');
}
$('input#filter, input#rfilter').addClass('ui-state-default ui-corner-all');
$('input[type="text"], input[type="password"], input[type="checkbox"], textarea').not('image').addClass('ui-state-default ui-corner-all');
$('.colordropdown').change(function() {
id=$(this).attr('id');
color=$('#'+id+' option:selected').attr('data-color');
$('<span>', {
style: 'background-color:#'+color+',width:16px;height:16px;',
'class': 'color-icon'
}).appendTo($('#'+id+'-button'));
});
$('.checkboxgroup').children('br').remove();
$('.checkboxgroup').buttonset();
// Turn file buttons into jQueryUI buttons
$('.import_label').button();
$('.import_button').change(function() {
text=this.value;
setImportFile(text);
});
setImportFile(noFileSelected);
function setImportFile(fileText) {
$('.import_text').html(fileText);
}
maxWidth = 300;
$('select.colordropdown').dropcolor();
$('select').not('.colordropdown').each(function() {
if ($(this).prop('multiple') != true) {
$(this).each(function() {
id = $(this).attr('id');
$(this).selectmenu({
change: function(event, ui) {
$(this).val(ui.item.value).change();
},
position: {
my: "left top",
at: "left bottom",
collision: "flip"
},
width: 'auto'
});
$('#'+id+'-menu').css('max-height', '250px');
});
}else{
$(this).addClass('ui-state-default ui-corner-all');
}
});
$('#drp_action').change(function() {
if ($(this).val() != '0') {
$('#submit').button('enable');
}else{
$('#submit').button('disable');
}
});
$('#graph_type_id').change(function() {
switch($(this).val()) {
case '4':
case '5':
case '6':
case '7':
case '8':
$('#alpha').selectmenu('enable');
}
});
$('#host').unbind().autocomplete({
source: pageName+'?action=ajax_hosts',
autoFocus: true,
minLength: 0,
select: function(event,ui) {
$('#host_id').val(ui.item.id);
callBack = $('#call_back').val();
if (callBack != 'undefined') {
eval(callBack);
}else if (typeof applyGraphFilter === 'function') {
applyGraphFilter();
}else{
applyFilter();
}
}
}).addClass('ui-state-default ui-selectmenu-text').css('border', 'none').css('background-color', 'transparent');
$('#host_click').css('z-index', '4');
$('#host_wrapper').unbind().dblclick(function() {
hostOpen = false;
clearTimeout(hostTimer);
clearTimeout(clickTimeout);
$('#host').autocomplete('close');
}).click(function() {
if (hostOpen) {
$('#host').autocomplete('close');
clearTimeout(hostTimer);
hostOpen = false;
}else{
clickTimeout = setTimeout(function() {
$('#host').autocomplete('search', '');
clearTimeout(hostTimer);
hostOpen = true;
}, 200);
}
}).on('mouseenter', function() {
$(this).addClass('ui-state-hover');
$('input#host').addClass('ui-state-hover');
}).on('mouseleave', function() {
$(this).removeClass('ui-state-hover');
$('#host').removeClass('ui-state-hover');
hostTimer = setTimeout(function() { $('#host').autocomplete('close'); }, 800);
hostOpen = false;
});
var hostPrefix = '';
$('#host').autocomplete('widget').each(function() {
hostPrefix=$(this).attr('id');
if (hostPrefix != '') {
$('ul[id="'+hostPrefix+'"]').on('mouseenter', function() {
clearTimeout(hostTimer);
}).on('mouseleave', function() {
hostTimer = setTimeout(function() { $('#host').autocomplete('close'); }, 800);
$(this).removeClass('ui-state-hover');
$('input#host').removeClass('ui-state-hover');
});
}
});
// Hide the graph icons until you hover
$('.graphDrillDown').hover(
function() {
element = $(this);
// hide the previously shown element
if (element.attr('id').replace('dd', '') != graphMenuElement && graphMenuElement > 0) {
$('#dd'+graphMenuElement).find('.iconWrapper:first').hide(300);
}
clearTimeout(graphMenuTimer);
graphMenuTimer = setTimeout(function() { showGraphMenu(element); }, 400);
},
function() {
element = $(this);
clearTimeout(graphMenuTimer);
graphMenuTimer = setTimeout(function() { hideGraphMenu(element); }, 400);
});
function showGraphMenu(element) {
element.find('.spikekillMenu').menu('disable');
element.find('.iconWrapper').show(300, function() {
graphMenuElement = element.attr('id').replace('dd', '');;
$(this).find('.spikekillMenu').menu('enable');
});
}
function hideGraphMenu(element) {
element.find('.spikekillMenu').menu('disable');
element.find('.iconWrapper').hide(300, function() {
$(this).find('.spikekillMenu').menu('enable');
});
}
setNavigationScroll();
}
function setMenuVisibility() {
storage=Storages.localStorage;
// Initialize the navigation settings
// This will setup the initial visibility of the menu
$('li.menuitem').each(function() {
var id = $(this).attr('id');
var active = storage.get(id);
if (active != null && active == 'active') {
$(this).find('ul').attr('aria-hidden', 'false').attr('aria-expanded', 'true').show();
$(this).next('a').show();
}else{
$(this).find('ul').attr('aria-hidden', 'true').attr('aria-expanded', 'false').hide();
$(this).next('a').hide();
}
if ($(this).find('a.selected').length == 0) {
$(this).find('ul').attr('aria-hidden', 'true').attr('aria-expanded', 'false').hide();
$(this).next('a').hide();
storage.set($(this).closest('.menuitem').attr('id'), 'collapsed');
} else {
$(this).find('ul').attr('aria-hidden', 'false').attr('aria-expanded', 'true').show();
$(this).next('a').show();
storage.set($(this).closest('.menuitem').attr('id'), 'active');
}
});
// Functon to give life to the Navigation pane
$('#nav li:has(ul) a.active').unbind().click(function(event) {
event.preventDefault();
id = $(this).closest('.menuitem').attr('id');
if ($(this).next().is(':visible')){
$(this).next('ul').attr('aria-hidden', 'true').attr('aria-expanded', 'false');
$(this).next().slideUp( { duration: 200, easing: 'swing' } );
storage.set(id, 'collapsed');
} else {
$(this).next('ul').attr('aria-hidden', 'false').attr('aria-expanded', 'true');
$(this).next().slideToggle( { duration: 200, easing: 'swing' } );
if ($(this).next().is(':visible')) {
storage.set($(this).closest('.menuitem').attr('id'), 'active');
}else{
storage.set(id, 'collapsed');
}
}
$('li.menuitem').not('#'+id).each(function() {
text = $(this).attr('id');
id = $(this).attr('id');
$(this).find('ul').attr('aria-hidden', 'true').attr('aria-expanded', 'false');
$(this).find('ul').slideUp( { duration: 200, easing: 'swing' } );
storage.set($(this).attr('id'), 'collapsed');
});
});
}