Navbar step2: minimaler Status im Dropdown (GET /plugin/tailscale_funnel/status), Open-Link bei Enabled
This commit is contained in:
@@ -91,7 +91,7 @@ class TailscaleFunnelPlugin(octoprint.plugin.StartupPlugin,
|
||||
|
||||
def get_assets(self):
|
||||
return dict(
|
||||
js=["js/tailscale_funnel.js"],
|
||||
js=["js/tailscale_funnel.js", "js/tailscale_funnel_navbar.js"],
|
||||
css=["css/tailscale_funnel.css"],
|
||||
less=["less/tailscale_funnel.less"]
|
||||
)
|
||||
|
@@ -0,0 +1,43 @@
|
||||
$(function() {
|
||||
function refreshNavbarStatus() {
|
||||
var $status = $("#tsf_nav_status");
|
||||
var $openLi = $("#tsf_nav_open_li");
|
||||
var $open = $("#tsf_nav_open");
|
||||
if ($status.length === 0) return;
|
||||
$status.text("Checking...");
|
||||
$.ajax({
|
||||
url: PLUGIN_BASEURL + "tailscale_funnel/status",
|
||||
type: "GET",
|
||||
dataType: "json",
|
||||
success: function(resp) {
|
||||
if (resp && resp.status === "success") {
|
||||
var enabled = !!(resp.data && resp.data.funnel_enabled);
|
||||
var url = resp.data && resp.data.public_url ? resp.data.public_url : "";
|
||||
$status.text(enabled ? "Enabled" : "Disabled");
|
||||
if (enabled && url) {
|
||||
$open.attr("href", url);
|
||||
$openLi.removeClass("hidden");
|
||||
} else {
|
||||
$open.attr("href", "#");
|
||||
$openLi.addClass("hidden");
|
||||
}
|
||||
} else {
|
||||
$status.text("Error");
|
||||
$openLi.addClass("hidden");
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
$status.text("Error");
|
||||
$openLi.addClass("hidden");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Refresh when dropdown opens, and on click of Refresh
|
||||
$(document).on('show.bs.dropdown', '#navbar_plugin_tailscale_funnel', refreshNavbarStatus);
|
||||
$(document).on('click', '#tsf_nav_refresh', function(e) {
|
||||
e.preventDefault();
|
||||
refreshNavbarStatus();
|
||||
});
|
||||
});
|
||||
|
@@ -4,9 +4,10 @@
|
||||
<span class="visible-lg">Funnel</span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li class="disabled"><a href="#"><strong>Status:</strong> (static) Loaded</a></li>
|
||||
<li class="disabled"><a href="#"><strong>Status:</strong> <span id="tsf_nav_status">Checking...</span></a></li>
|
||||
<li id="tsf_nav_open_li" class="hidden"><a id="tsf_nav_open" href="#" target="_blank" rel="noopener"><i class="fas fa-external-link-alt"></i> Open</a></li>
|
||||
<li class="divider"></li>
|
||||
<li class="disabled"><a href="#">Static prototype</a></li>
|
||||
<li><a id="tsf_nav_refresh" href="#"><i class="fas fa-sync"></i> Refresh</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
Reference in New Issue
Block a user