mirror of
https://github.com/unraid/webgui.git
synced 2026-01-01 15:10:19 -06:00
GUI search: fix javascript errors
This commit is contained in:
@@ -11,82 +11,69 @@ Code='e956'
|
||||
# #
|
||||
###################################################
|
||||
|
||||
$currentUnraidPage = str_replace("Browse","Main",basename(explode("?",$_SERVER['REQUEST_URI'])[0]));
|
||||
$guiSearchBoxSpan = "<span id='guiSearchBoxSpan'><input type='text' id='guiSearchBox' autocomplete='new-password' onfocusout='closeSearchBox()'></input></span><span class='guiSearchBoxResults'></span>";
|
||||
$currentUnraidPage = str_replace('Browse','Main',basename(explode('?',$_SERVER['REQUEST_URI'])[0]));
|
||||
$guiSearchBoxSpan = "<span id='guiSearchBoxSpan'><input type='text' id='guiSearchBox' autocomplete='new-password'></input></span><span class='guiSearchBoxResults'></span>";
|
||||
?>
|
||||
<script>
|
||||
var languageVisible;
|
||||
var guiSearchSuggestions;
|
||||
|
||||
var browserName = (function(agent) {
|
||||
var browserName = (function(agent){
|
||||
switch (true) {
|
||||
case agent.indexOf("edge") > -1: return "Edge"; // Edge
|
||||
case agent.indexOf("edg/") > -1: return "Edge"; // Edge Chromium Based
|
||||
case agent.indexOf("opr") > -1 && !!window.opr: return "Opera";
|
||||
case agent.indexOf("chrome") > -1 && !!window.chrome: return "Chrome";
|
||||
case agent.indexOf("trident") > -1: return "MS IE";
|
||||
case agent.indexOf("firefox") > -1: return "Mozilla Firefox";
|
||||
case agent.indexOf("safari") > -1: return "Safari";
|
||||
default: return "other";
|
||||
case agent.indexOf('edge') >= 0: return 'Edge'; // Edge
|
||||
case agent.indexOf('edg/') >= 0: return 'Edge'; // Edge Chromium Based
|
||||
case agent.indexOf('opr') >= 0 && !!window.opr: return 'Opera';
|
||||
case agent.indexOf('chrome') >= 0 && !!window.chrome: return 'Chrome';
|
||||
case agent.indexOf('trident') >= 0: return 'MS IE';
|
||||
case agent.indexOf('firefox') >= 0: return 'Mozilla Firefox';
|
||||
case agent.indexOf('safari') >= 0: return 'Safari';
|
||||
default: return 'other';
|
||||
}
|
||||
})(window.navigator.userAgent.toLowerCase());
|
||||
|
||||
$(function() {
|
||||
$(function(){
|
||||
<?if ($themes2):?>
|
||||
$(".nav-item.gui_search").hover(function(){gui_search();},function(){closeSearchBox();});
|
||||
$('.nav-item.gui_search').hover(function(){gui_search();},function(e){closeSearchBox(e);});
|
||||
<?endif;?>
|
||||
$.post("/plugins/dynamix.gui.search/include/exec.php",function(data) {
|
||||
$.post('/plugins/dynamix.gui.search/include/exec.php',function(data) {
|
||||
if (data) {
|
||||
try {guiSearchSuggestions = JSON.parse(data); setupGUIsearch();}
|
||||
catch(e) {console.log("Invalid JSON for GUI search autocomplete");}
|
||||
catch(e) {console.log('Invalid JSON for GUI search autocomplete');}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function guiSearchBoxSpan() {
|
||||
return $('#guiSearchBoxSpan').length>0;
|
||||
}
|
||||
|
||||
function setupGUIsearch() {
|
||||
if (navigator.appVersion.indexOf("Mac")!=-1) {
|
||||
window.addEventListener('keydown', function(e) {
|
||||
if (!e.shiftKey && !e.altKey && e.metaKey && e.keyCode == 75) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
if ($("#guiSearchBoxSpan").is(":visible")) {
|
||||
closeSearchBox();
|
||||
return;
|
||||
}
|
||||
gui_search();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
window.addEventListener('keydown', function(e) {
|
||||
if (!e.shiftKey && !e.altKey && e.ctrlKey && e.keyCode == 75) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
if ($("#guiSearchBoxSpan").is(":visible")) {
|
||||
closeSearchBox();
|
||||
return;
|
||||
}
|
||||
gui_search();
|
||||
}
|
||||
});
|
||||
}
|
||||
if (browserName != "Chrome" && browserName != "Edge") {
|
||||
var hashTag = window.location.hash.substr(1).replace("%20"," ").replace("%2d","-");
|
||||
if (hashTag.length) $("body").mark(hashTag,{"accuracy": {"value": "exactly","limiters": [".",":","?"]},"separateWordSearch": false});
|
||||
window.addEventListener('keydown',function(e){
|
||||
if (!e.shiftKey && !e.altKey && (navigator.appVersion.indexOf('Mac')==-1 ? e.ctrlKey : e.metaKey) && e.keyCode==75) {
|
||||
e.preventDefault();
|
||||
<?if ($themes1):?>
|
||||
if (guiSearchBoxSpan()) closeSearchBox(e); else gui_search();
|
||||
<?endif;?>
|
||||
}
|
||||
});
|
||||
if (browserName != 'Chrome' && browserName != 'Edge') {
|
||||
var hashTag = window.location.hash.substr(1).replace('%20',' ').replace('%2d','-');
|
||||
if (hashTag.length) $('body').mark(hashTag,{'accuracy': {'value': 'exactly','limiters': ['.',':','?']},'separateWordSearch': false});
|
||||
}
|
||||
}
|
||||
|
||||
function gui_search() {
|
||||
if (typeof Awesomplete == 'function') {
|
||||
<?if ($themes1):?>
|
||||
languageVisible = $(".nav-item.LanguageButton").is(":visible");
|
||||
$(".nav-tile.right").prepend("<?=$guiSearchBoxSpan?>").css("overflow","visible");
|
||||
$(".nav-item.util,.nav-user.show").hide();
|
||||
languageVisible = $('.nav-item.LanguageButton').is(':visible');
|
||||
$('.nav-tile.right').prepend("<?=$guiSearchBoxSpan?>").css('overflow','visible');
|
||||
$('.nav-item.util,.nav-user.show').hide();
|
||||
<?else:?>
|
||||
if (!$("#guiSearchBoxSpan").length) $(".nav-item.gui_search a").append("<?=$guiSearchBoxSpan?>");
|
||||
$(".nav-item.gui_search").css("overflow","visible");
|
||||
if (!guiSearchBoxSpan()) $('.nav-item.gui_search a').append("<?=$guiSearchBoxSpan?>");
|
||||
$('.nav-item.gui_search').css('overflow','visible');
|
||||
<?endif;?>
|
||||
var guiSearchAwesomplete;
|
||||
guiSearchBoxInput = document.getElementById("guiSearchBox");
|
||||
guiSearchBoxInput = document.getElementById('guiSearchBox');
|
||||
guiSearchAwesomplete = new Awesomplete(guiSearchBoxInput);
|
||||
if (guiSearchSuggestions) {
|
||||
guiSearchAwesomplete.list = guiSearchSuggestions;
|
||||
@@ -94,41 +81,39 @@ function gui_search() {
|
||||
guiSearchAwesomplete.autoFirst = true;
|
||||
Awesomplete.$('#guiSearchBox').removeEventListener('awesomplete-selectcomplete',guiSearch);
|
||||
Awesomplete.$('#guiSearchBox').addEventListener('awesomplete-selectcomplete',guiSearch);
|
||||
$("#guiSearchBox").attr("autocomplete","new-password"); // Stop awesomplete from resetting autocomplete
|
||||
$('#guiSearchBox').attr('autocomplete','new-password'); // Stop awesomplete from resetting autocomplete
|
||||
}
|
||||
$("#guiSearchBox").focus().keydown(function(e) {
|
||||
if (e.which == 27) closeSearchBox();
|
||||
});
|
||||
$('#guiSearchBox').focus().keydown(function(e){if (e.which==27) closeSearchBox(e);}).blur(function(e){closeSearchBox(e);});
|
||||
}
|
||||
}
|
||||
|
||||
function closeSearchBox() {
|
||||
$("#guiSearchBoxSpan").remove();
|
||||
function closeSearchBox(e) {
|
||||
e.stopPropagation();
|
||||
$('#guiSearchBoxSpan').remove();
|
||||
<?if ($themes1):?>
|
||||
$(".nav-tile.right").css({"overflow-x":"auto","overflow-y":"hidden"});
|
||||
$(".nav-item.util,.nav-user.show").show();
|
||||
if (!languageVisible) $(".nav-item.LanguageButton").hide();
|
||||
$('.nav-tile.right').css({'overflow-x':'auto','overflow-y':'hidden'});
|
||||
$('.nav-item.util,.nav-user.show').show();
|
||||
if (!languageVisible) $('.nav-item.LanguageButton').hide();
|
||||
<?else:?>
|
||||
$(".nav-item.gui_search").css("overflow","hidden");
|
||||
$('.nav-item.gui_search').css('overflow','hidden');
|
||||
<?endif;?>
|
||||
}
|
||||
|
||||
function guiSearch() {
|
||||
event.stopPropagation();
|
||||
var searchInfo = $("#guiSearchBox").val().split("**");
|
||||
var separator = (browserName == "Chrome" || browserName == "Edge") ? "#:~:text=" : "#";
|
||||
var scrollText = (typeof searchInfo[1] != 'undefined') ? separator+searchInfo[1].replace(" ","%20").replace("-","%2d") : "";
|
||||
var newPage = "<?=$currentUnraidPage?>/Settings/Tools".replace(searchInfo[0]+"/","");
|
||||
var searchInfo = $('#guiSearchBox').val().split('**');
|
||||
var separator = (browserName == 'Chrome' || browserName == 'Edge') ? '#:~:text=' : '#';
|
||||
var scrollText = (typeof searchInfo[1] != 'undefined') ? separator+searchInfo[1].replace(' ','%20').replace('-','%2d') : '';
|
||||
var newPage = "<?=$currentUnraidPage?>/Settings/Tools".replace(searchInfo[0]+'/','');
|
||||
|
||||
if (newPage == "Dashboard/Settings/Tools") newPage = "Settings";
|
||||
location.replace("/"+newPage+"/"+searchInfo[0]+scrollText);
|
||||
closeSearchBox();
|
||||
if (newPage == 'Dashboard/Settings/Tools') newPage = 'Settings';
|
||||
closeSearchBox(event);
|
||||
location.replace('/'+newPage+'/'+searchInfo[0]+scrollText);
|
||||
}
|
||||
|
||||
if (browserName != "Chrome" && browserName != "Edge") {
|
||||
if (browserName != 'Chrome' && browserName != 'Edge') {
|
||||
var script = document.createElement('script');
|
||||
script.type = "text/javascript";
|
||||
script.src = "<?autov('/plugins/dynamix.gui.search/javascript/jquery.mark.js')?>";
|
||||
script.type = 'text/javascript';
|
||||
script.src = '<?autov('/plugins/dynamix.gui.search/javascript/jquery.mark.js')?>';
|
||||
document.getElementsByTagName('head')[0].appendChild(script);
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user