feat: show status of the instance with a colored dot
Some checks failed
Invidious CI / build (push) Has been cancelled
Some checks failed
Invidious CI / build (push) Has been cancelled
This commit is contained in:
parent
e5c0f15398
commit
5d2724ade3
3 changed files with 255 additions and 204 deletions
|
@ -1,16 +1,55 @@
|
|||
module BackendInfo
|
||||
extend self
|
||||
@@exvpp_url : String = ""
|
||||
@@status : Int32 = 0
|
||||
|
||||
def get_videoplayback_proxy
|
||||
def check_backends
|
||||
check_videoplayback_proxy()
|
||||
check_companion()
|
||||
end
|
||||
|
||||
def check_companion
|
||||
begin
|
||||
response = HTTP::Client.get "#{CONFIG.invidious_companion.sample.private_url}/info"
|
||||
exvpp_url = JSON.parse(response.body)["external_videoplayback_proxy"].to_s
|
||||
response = HTTP::Client.get "#{CONFIG.invidious_companion.sample.private_url}/healthz"
|
||||
if response.status_code == 200
|
||||
@@status = 1
|
||||
check_videoplayback_proxy()
|
||||
else
|
||||
@@status = 0
|
||||
end
|
||||
rescue
|
||||
@@status = 0
|
||||
end
|
||||
end
|
||||
|
||||
def check_videoplayback_proxy
|
||||
begin
|
||||
info = HTTP::Client.get "#{CONFIG.invidious_companion.sample.private_url}/info"
|
||||
exvpp_url = JSON.parse(info.body)["external_videoplayback_proxy"]?.try &.to_s
|
||||
exvpp_url = "" if exvpp_url.nil?
|
||||
@@exvpp_url = exvpp_url
|
||||
if exvpp_url.empty?
|
||||
@@status = 2
|
||||
return
|
||||
else
|
||||
begin
|
||||
exvpp_health = HTTP::Client.get "#{exvpp_url}/health"
|
||||
if exvpp_health.status_code == 200
|
||||
@@status = 2
|
||||
return
|
||||
end
|
||||
rescue
|
||||
@@status = 1
|
||||
end
|
||||
end
|
||||
rescue
|
||||
end
|
||||
end
|
||||
|
||||
def get_status
|
||||
return @@status
|
||||
end
|
||||
|
||||
def get_exvpp
|
||||
return @@exvpp_url
|
||||
end
|
||||
|
|
|
@ -4,9 +4,9 @@ class Invidious::Jobs::CheckBackend < Invidious::Jobs::BaseJob
|
|||
|
||||
def begin
|
||||
loop do
|
||||
BackendInfo.get_videoplayback_proxy
|
||||
LOGGER.info("Backend Checker: Done, sleeping for 60 seconds")
|
||||
sleep 60.seconds
|
||||
BackendInfo.check_backends
|
||||
LOGGER.info("Backend Checker: Done, sleeping for 30 seconds")
|
||||
sleep 30.seconds
|
||||
Fiber.yield
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
locale = env.get("preferences").as(Preferences).locale
|
||||
dark_mode = env.get("preferences").as(Preferences).dark_mode
|
||||
current_backend = env.request.cookies[CONFIG.server_id_cookie_name]?.try &.value || env.request.headers["Host"]
|
||||
current_external_videoplayback_proxy = Invidious::HttpServer::Utils.get_external_proxy()
|
||||
current_external_videoplayback_proxy = Invidious::HttpServer::Utils.get_external_proxy()
|
||||
status = BackendInfo.get_status
|
||||
%>
|
||||
<!DOCTYPE html>
|
||||
<html lang="<%= locale %>">
|
||||
|
@ -34,7 +35,18 @@
|
|||
<div class="pure-g navbar h-box">
|
||||
<% if navbar_search %>
|
||||
<div class="pure-u-1 pure-u-md-4-24">
|
||||
<a href="/" class="index-link pure-menu-heading">Invidious</a>
|
||||
<a href="/" class="index-link pure-menu-heading">
|
||||
Invidious
|
||||
<% if status == 0 %>
|
||||
<span style="color: #fd4848;">•</span>
|
||||
<% end %>
|
||||
<% if status == 1 %>
|
||||
<span style="color: #d06925;">•</span>
|
||||
<% end %>
|
||||
<% if status == 2 %>
|
||||
<span style="color: #42ae3c;">•</span>
|
||||
<% end %>
|
||||
</a>
|
||||
</div>
|
||||
<div class="pure-u-1 pure-u-md-12-24 searchbar">
|
||||
<% autofocus = false %><%= rendered "components/search_box" %>
|
||||
|
@ -107,7 +119,7 @@
|
|||
</div>
|
||||
|
||||
<% if !CONFIG.backends.empty? %>
|
||||
<% if !CONFIG.backend_domains.includes?(env.request.headers["Host"]) %>
|
||||
<% if !CONFIG.backend_domains.includes?(env.request.headers["Host"]) %>
|
||||
<div class="h-box" style="margin-bottom: 10px;">
|
||||
<b>Switch Backend:</b>
|
||||
<% CONFIG.backends.each do | backend | %>
|
||||
|
@ -117,20 +129,20 @@
|
|||
Backend<%= HTML.escape(backend[0]) %>
|
||||
<% if backend.size == 2 %>
|
||||
<%= HTML.escape(backend[1]) %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</a> <span> | </span>
|
||||
<% else %>
|
||||
<% else %>
|
||||
<a href="/switchbackend?backend_id=<%= backend[0] %>" style="display: inline-block;">
|
||||
Backend<%= HTML.escape(backend[0]) %>
|
||||
<% if backend.size == 2 %>
|
||||
<%= HTML.escape(backend[1]) %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</a> <span> | </span>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<% if CONFIG.banner %>
|
||||
<div class="h-box">
|
||||
|
@ -140,202 +152,202 @@
|
|||
|
||||
<%= content %>
|
||||
|
||||
<% if buffer_footer %>
|
||||
<div id="footer_buffer"></div>
|
||||
<% end %>
|
||||
<% if buffer_footer %>
|
||||
<div id="footer_buffer"></div>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script src="/js/handlers.js?v=<%= ASSET_COMMIT %>"></script>
|
||||
<script src="/js/themes.js?v=<%= ASSET_COMMIT %>"></script>
|
||||
<% if env.get? "user" %>
|
||||
<script src="/js/sse.js?v=<%= ASSET_COMMIT %>"></script>
|
||||
<script id="notification_data" type="application/json">
|
||||
<%=
|
||||
{
|
||||
"upload_text" => HTML.escape(translate(locale, "`x` uploaded a video")),
|
||||
"live_upload_text" => HTML.escape(translate(locale, "`x` is live"))
|
||||
}.to_pretty_json
|
||||
%>
|
||||
</script>
|
||||
<% if CONFIG.enable_user_notifications %>
|
||||
<script src="/js/notifications.js?v=<%= ASSET_COMMIT %>"></script>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/js/handlers.js?v=<%= ASSET_COMMIT %>"></script>
|
||||
<script src="/js/themes.js?v=<%= ASSET_COMMIT %>"></script>
|
||||
<% if env.get? "user" %>
|
||||
<script src="/js/sse.js?v=<%= ASSET_COMMIT %>"></script>
|
||||
<script id="notification_data" type="application/json">
|
||||
<%=
|
||||
{
|
||||
"upload_text" => HTML.escape(translate(locale, "`x` uploaded a video")),
|
||||
"live_upload_text" => HTML.escape(translate(locale, "`x` is live"))
|
||||
}.to_pretty_json
|
||||
%>
|
||||
</script>
|
||||
<% if CONFIG.enable_user_notifications %>
|
||||
<script src="/js/notifications.js?v=<%= ASSET_COMMIT %>"></script>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<footer class="pure-g">
|
||||
<div class="pure-u-1 pure-u-md-2-24"></div>
|
||||
<div class="h-box pure-u-1 pure-u-md-20-24" id="footer-content-container">
|
||||
<div class="pure-u-1 footer-content">
|
||||
<div class="footer-section pure-u-1-4" id="footer-custom-text">
|
||||
<b>Invidious</b>
|
||||
<% if CONFIG.footer %>
|
||||
<p><%=CONFIG.footer%></p>
|
||||
<% else %>
|
||||
<p><%=translate(locale, "default_invidious_footer_text")%></p>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
<div class="footer-section">
|
||||
<b class="footer-section-header"><%= translate(locale, "footer_navigation_section_header")%></b>
|
||||
<ul class="pure-menu-list footer-section-list">
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="/" title="<%= translate(locale, "footer_home_link")%>">
|
||||
<%= translate(locale, "footer_home_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="/feed/popular" title="<%= translate(locale, "Popular")%>">
|
||||
<%= translate(locale, "Popular") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="/feed/trending" title="<%= translate(locale, "Trending")%>" style="">
|
||||
<%= translate(locale, "Trending") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="/search" title="<%= translate(locale, "Search")%>">
|
||||
<%= translate(locale, "Search") %>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-section">
|
||||
<b class="footer-section-header">Invidious</b>
|
||||
<ul class="pure-menu-list footer-section-list">
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="https://invidious.io" title="<%= translate(locale, "footer_project_homepage_link")%>">
|
||||
<%= translate(locale, "footer_project_homepage_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="https://github.com/iv-org/invidious" title="<%= translate(locale, "footer_source_code_link")%>">
|
||||
<%= translate(locale, "footer_source_code_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="https://github.com/iv-org/invidious/issues" title="<%= translate(locale, "footer_issue_tracker_link")%>" style="">
|
||||
<%= translate(locale, "footer_issue_tracker_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="https://instances.invidious.io" title="<%= translate(locale, "footer_public_instances_link")%>">
|
||||
<%= translate(locale, "footer_public_instances_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="https://invidious.io/donate" title="<%= translate(locale, "footer_donate_link")%>">
|
||||
<%= translate(locale, "footer_donate_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="https://matrix.to/#/#invidious:matrix.org" title="<%= translate(locale, "footer_matrix_link")%>">
|
||||
<%= translate(locale, "footer_matrix_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<footer class="pure-g">
|
||||
<div class="pure-u-1 pure-u-md-2-24"></div>
|
||||
<div class="h-box pure-u-1 pure-u-md-20-24" id="footer-content-container">
|
||||
<div class="pure-u-1 footer-content">
|
||||
<div class="footer-section pure-u-1-4" id="footer-custom-text">
|
||||
<b>Invidious</b>
|
||||
<% if CONFIG.footer %>
|
||||
<p><%=CONFIG.footer%></p>
|
||||
<% else %>
|
||||
<p><%=translate(locale, "default_invidious_footer_text")%></p>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
<div class="footer-section">
|
||||
<b class="footer-section-header"><%= translate(locale, "footer_navigation_section_header")%></b>
|
||||
<ul class="pure-menu-list footer-section-list">
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="/" title="<%= translate(locale, "footer_home_link")%>">
|
||||
<%= translate(locale, "footer_home_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="/feed/popular" title="<%= translate(locale, "Popular")%>">
|
||||
<%= translate(locale, "Popular") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="/feed/trending" title="<%= translate(locale, "Trending")%>" style="">
|
||||
<%= translate(locale, "Trending") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="/search" title="<%= translate(locale, "Search")%>">
|
||||
<%= translate(locale, "Search") %>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-section">
|
||||
<b class="footer-section-header">Invidious</b>
|
||||
<ul class="pure-menu-list footer-section-list">
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="https://invidious.io" title="<%= translate(locale, "footer_project_homepage_link")%>">
|
||||
<%= translate(locale, "footer_project_homepage_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="https://github.com/iv-org/invidious" title="<%= translate(locale, "footer_source_code_link")%>">
|
||||
<%= translate(locale, "footer_source_code_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="https://github.com/iv-org/invidious/issues" title="<%= translate(locale, "footer_issue_tracker_link")%>" style="">
|
||||
<%= translate(locale, "footer_issue_tracker_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="https://instances.invidious.io" title="<%= translate(locale, "footer_public_instances_link")%>">
|
||||
<%= translate(locale, "footer_public_instances_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="https://invidious.io/donate" title="<%= translate(locale, "footer_donate_link")%>">
|
||||
<%= translate(locale, "footer_donate_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="https://matrix.to/#/#invidious:matrix.org" title="<%= translate(locale, "footer_matrix_link")%>">
|
||||
<%= translate(locale, "footer_matrix_link") %>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<% if CONFIG.instance_maintainer_email || CONFIG.modified_source_code_url || CONFIG.footer_instance_tos_link || CONFIG.footer_instance_privacy_policy_link %>
|
||||
<div class="footer-section">
|
||||
<b class="footer-section-header">
|
||||
<% if CONFIG.modified_source_code_url %>
|
||||
<%= translate(locale, "footer_instance_section_header_modified_source")%>
|
||||
<% else %>
|
||||
<%= translate(locale, "footer_instance_section_header")%>
|
||||
<% end %>
|
||||
</b>
|
||||
<ul class="pure-menu-list footer-section-list">
|
||||
<% if CONFIG.instance_maintainer_email %>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="<%=HTML.escape("mailto:#{CONFIG.instance_maintainer_email.not_nil!}")%>" title="<%= translate(locale, "footer_contact_link")%>">
|
||||
<%= translate(locale, "footer_contact_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<% end %>
|
||||
<% if CONFIG.modified_source_code_url %>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="<%=HTML.escape(CONFIG.modified_source_code_url.not_nil!)%>" title="<%= translate(locale, "footer_instance_section_modified_source_code")%>">
|
||||
<%= translate(locale, "footer_instance_section_modified_source_code") %>
|
||||
</a>
|
||||
</li>
|
||||
<% end %>
|
||||
<% if CONFIG.footer_instance_tos_link %>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="<%=HTML.escape(CONFIG.footer_instance_tos_link.not_nil!)%>" title="<%= translate(locale, "footer_instance_section_tos")%>">
|
||||
<%= translate(locale, "footer_instance_section_tos") %>
|
||||
</a>
|
||||
</li>
|
||||
<% end %>
|
||||
<% if CONFIG.footer_instance_privacy_policy_link %>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="<%=HTML.escape(CONFIG.footer_instance_privacy_policy_link.not_nil!)%>" title="<%= translate(locale, "footer_instance_section_privacy_policy")%>">
|
||||
<%= translate(locale, "footer_instance_section_privacy_policy") %>
|
||||
</a>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
<% if CONFIG.instance_maintainer_email || CONFIG.modified_source_code_url || CONFIG.footer_instance_tos_link || CONFIG.footer_instance_privacy_policy_link %>
|
||||
<div class="footer-section">
|
||||
<b class="footer-section-header">
|
||||
<% if CONFIG.modified_source_code_url %>
|
||||
<%= translate(locale, "footer_instance_section_header_modified_source")%>
|
||||
<% else %>
|
||||
<%= translate(locale, "footer_instance_section_header")%>
|
||||
<% end %>
|
||||
</b>
|
||||
<ul class="pure-menu-list footer-section-list">
|
||||
<% if CONFIG.instance_maintainer_email %>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="<%=HTML.escape("mailto:#{CONFIG.instance_maintainer_email.not_nil!}")%>" title="<%= translate(locale, "footer_contact_link")%>">
|
||||
<%= translate(locale, "footer_contact_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<% end %>
|
||||
<% if CONFIG.modified_source_code_url %>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="<%=HTML.escape(CONFIG.modified_source_code_url.not_nil!)%>" title="<%= translate(locale, "footer_instance_section_modified_source_code")%>">
|
||||
<%= translate(locale, "footer_instance_section_modified_source_code") %>
|
||||
</a>
|
||||
</li>
|
||||
<% end %>
|
||||
<% if CONFIG.footer_instance_tos_link %>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="<%=HTML.escape(CONFIG.footer_instance_tos_link.not_nil!)%>" title="<%= translate(locale, "footer_instance_section_tos")%>">
|
||||
<%= translate(locale, "footer_instance_section_tos") %>
|
||||
</a>
|
||||
</li>
|
||||
<% end %>
|
||||
<% if CONFIG.footer_instance_privacy_policy_link %>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="<%=HTML.escape(CONFIG.footer_instance_privacy_policy_link.not_nil!)%>" title="<%= translate(locale, "footer_instance_section_privacy_policy")%>">
|
||||
<%= translate(locale, "footer_instance_section_privacy_policy") %>
|
||||
</a>
|
||||
</li>
|
||||
<% end %>
|
||||
|
||||
<% if CONFIG.footer_instance_donate_link %>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="<%=HTML.escape(CONFIG.footer_instance_donate_link.not_nil!)%>" title="<%= translate(locale, "footer_instance_section_donate")%>">
|
||||
<%= translate(locale, "footer_instance_section_donate") %>
|
||||
</a>
|
||||
</li>
|
||||
<% end %>
|
||||
<% if CONFIG.footer_instance_donate_link %>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="<%=HTML.escape(CONFIG.footer_instance_donate_link.not_nil!)%>" title="<%= translate(locale, "footer_instance_section_donate")%>">
|
||||
<%= translate(locale, "footer_instance_section_donate") %>
|
||||
</a>
|
||||
</li>
|
||||
<% end %>
|
||||
|
||||
<% CONFIG.footer_instance_section_custom_fields.each do | field | %>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="<%=HTML.escape(field[1])%>" title="<%= HTML.escape(field[0]) %>">
|
||||
<%= HTML.escape(field[0]) %>
|
||||
</a>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
<% end %>
|
||||
<% CONFIG.footer_instance_section_custom_fields.each do | field | %>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="<%=HTML.escape(field[1])%>" title="<%= HTML.escape(field[0]) %>">
|
||||
<%= HTML.escape(field[0]) %>
|
||||
</a>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<div class="footer-section">
|
||||
<b class="footer-section-header"><%= translate(locale, "footer_support_section_header")%></b>
|
||||
<ul class="pure-menu-list footer-section-list">
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="https://github.com/iv-org/invidious/issues/new" title="<%= translate(locale, "footer_report_bug_link")%>">
|
||||
<%= translate(locale, "footer_report_bug_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="#" title="<%= translate(locale, "footer_faq_link")%>" style="">
|
||||
<%= translate(locale, "footer_faq_link") %>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="footer-footer">
|
||||
<div class="footer-section">
|
||||
<b class="footer-section-header"><%= translate(locale, "footer_support_section_header")%></b>
|
||||
<ul class="pure-menu-list footer-section-list">
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="https://github.com/iv-org/invidious/issues/new" title="<%= translate(locale, "footer_report_bug_link")%>">
|
||||
<%= translate(locale, "footer_report_bug_link") %>
|
||||
</a>
|
||||
</li>
|
||||
<li class="pure-menu-item footer-section-item">
|
||||
<a href="#" title="<%= translate(locale, "footer_faq_link")%>" style="">
|
||||
<%= translate(locale, "footer_faq_link") %>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="footer-footer">
|
||||
<div class="box">You are currently using Backend: <%= current_backend %></div>
|
||||
<% if !current_external_videoplayback_proxy.empty? %>
|
||||
<div class="box">External Videoplayback Proxy: <%= current_external_videoplayback_proxy %></div>
|
||||
<% end %>
|
||||
<span class="left">
|
||||
<% if CONFIG.modified_source_code_url %>
|
||||
<%= translate(locale, "footer_current_version_modified") %>
|
||||
<% else %>
|
||||
<%= translate(locale, "Current version: ") %>
|
||||
<% end %>
|
||||
|
||||
<%= CURRENT_VERSION %>-<%= CURRENT_COMMIT %> @ <%= CURRENT_BRANCH %>
|
||||
</span>
|
||||
<div class="right">
|
||||
<a href="/privacy" title="<%= translate(locale, "footer_privacy_policy_link")%>"><%= translate(locale, "footer_privacy_policy_link") %></a>
|
||||
<span> | </span>
|
||||
<a href="/licenses" title="<%= translate(locale, "footer_licences_link")%>"><%= translate(locale, "footer_licences_link") %></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-1 pure-u-md-2-24"></div>
|
||||
</footer>
|
||||
<% if !current_external_videoplayback_proxy.empty? %>
|
||||
<div class="box">External Videoplayback Proxy: <%= current_external_videoplayback_proxy %></div>
|
||||
<% end %>
|
||||
<span class="left">
|
||||
<% if CONFIG.modified_source_code_url %>
|
||||
<%= translate(locale, "footer_current_version_modified") %>
|
||||
<% else %>
|
||||
<%= translate(locale, "Current version: ") %>
|
||||
<% end %>
|
||||
|
||||
<%= CURRENT_VERSION %>-<%= CURRENT_COMMIT %> @ <%= CURRENT_BRANCH %>
|
||||
</span>
|
||||
<div class="right">
|
||||
<a href="/privacy" title="<%= translate(locale, "footer_privacy_policy_link")%>"><%= translate(locale, "footer_privacy_policy_link") %></a>
|
||||
<span> | </span>
|
||||
<a href="/licenses" title="<%= translate(locale, "footer_licences_link")%>"><%= translate(locale, "footer_licences_link") %></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-1 pure-u-md-2-24"></div>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
Loading…
Add table
Reference in a new issue