diff --git a/octoprint_tailscale_funnel/octoprint_tailscale_funnel/static/css/tailscale_funnel.css b/octoprint_tailscale_funnel/octoprint_tailscale_funnel/static/css/tailscale_funnel.css index 0a42fe9..dc05e1e 100644 --- a/octoprint_tailscale_funnel/octoprint_tailscale_funnel/static/css/tailscale_funnel.css +++ b/octoprint_tailscale_funnel/octoprint_tailscale_funnel/static/css/tailscale_funnel.css @@ -38,4 +38,15 @@ background-color: #fcf8e3; border-color: #faebcc; color: #8a6d3b; +} + +/* Navbar Button Farbkennung */ +#navbar_plugin_tailscale_funnel > a.tsf-enabled { + background-color: #5cb85c; + color: #fff; +} + +#navbar_plugin_tailscale_funnel > a.tsf-disabled { + background-color: #777; + color: #fff; } \ No newline at end of file diff --git a/octoprint_tailscale_funnel/octoprint_tailscale_funnel/static/js/tailscale_funnel_navbar.js b/octoprint_tailscale_funnel/octoprint_tailscale_funnel/static/js/tailscale_funnel_navbar.js index 685e520..0d72706 100644 --- a/octoprint_tailscale_funnel/octoprint_tailscale_funnel/static/js/tailscale_funnel_navbar.js +++ b/octoprint_tailscale_funnel/octoprint_tailscale_funnel/static/js/tailscale_funnel_navbar.js @@ -6,6 +6,7 @@ $(function() { var $openLi = $("#tsf_nav_open_li"); var $open = $("#tsf_nav_open"); var $toggleText = $("#tsf_nav_toggle_text"); + var $btn = $("#navbar_plugin_tailscale_funnel > a"); if ($status.length === 0) return; $status.text("Checking..."); $.ajax({ @@ -18,6 +19,7 @@ $(function() { var url = resp.data && resp.data.public_url ? resp.data.public_url : ""; $status.text(enabled ? "Enabled" : "Disabled"); $toggleText.text(enabled ? "Disable" : "Enable"); + $btn.toggleClass('tsf-enabled', enabled).toggleClass('tsf-disabled', !enabled); lastEnabled = enabled; if (enabled && url) { $open.attr("href", url); @@ -29,12 +31,14 @@ $(function() { } else { $status.text("Error"); $toggleText.text("Enable"); + $btn.removeClass('tsf-enabled tsf-disabled'); $openLi.addClass("hidden"); } }, error: function() { $status.text("Error"); $toggleText.text("Enable"); + $btn.removeClass('tsf-enabled tsf-disabled'); $openLi.addClass("hidden"); } }); @@ -58,6 +62,7 @@ $(function() { var action = enable ? 'enable' : 'disable'; var $status = $("#tsf_nav_status"); var $toggleText = $("#tsf_nav_toggle_text"); + var $btn = $("#navbar_plugin_tailscale_funnel > a"); $status.text(enable ? 'Enabling...' : 'Disabling...'); $.ajax({ url: PLUGIN_BASEURL + 'tailscale_funnel/' + action, @@ -68,6 +73,7 @@ $(function() { if (enable) { $status.text('Enabled'); $toggleText.text('Disable'); + $btn.addClass('tsf-enabled').removeClass('tsf-disabled'); var url = resp.data && resp.data.public_url ? resp.data.public_url : ''; if (url) { $("#tsf_nav_open").attr('href', url); @@ -77,6 +83,7 @@ $(function() { } else { $status.text('Disabled'); $toggleText.text('Enable'); + $btn.addClass('tsf-disabled').removeClass('tsf-enabled'); $("#tsf_nav_open").attr('href', '#'); $("#tsf_nav_open_li").addClass('hidden'); lastEnabled = false; @@ -85,10 +92,12 @@ $(function() { setTimeout(refreshNavbarStatus, 250); } else { $status.text('Error'); + $btn.removeClass('tsf-enabled tsf-disabled'); } }, error: function() { $status.text('Error'); + $btn.removeClass('tsf-enabled tsf-disabled'); } }); });