mirror of
https://github.com/iv-org/invidious.git
synced 2025-08-21 18:59:02 -05:00
192 lines
20 KiB
Plaintext
192 lines
20 KiB
Plaintext
<%
|
|
locale = env.get("preferences").as(Preferences).locale
|
|
dark_mode = env.get("preferences").as(Preferences).dark_mode
|
|
str_uptime = UpTime.get_uptime
|
|
%>
|
|
<!DOCTYPE html>
|
|
<html lang="<%= locale %>">
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<%= yield_content "header" %>
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=<%= ASSET_COMMIT %>">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=<%= ASSET_COMMIT %>">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=<%= ASSET_COMMIT %>">
|
|
<link rel="manifest" href="/site.webmanifest?v=<%= ASSET_COMMIT %>">
|
|
<link rel="mask-icon" href="/safari-pinned-tab.svg?v=<%= ASSET_COMMIT %>" color="#575757">
|
|
<meta name="msapplication-TileColor" content="#575757">
|
|
<meta name="theme-color" content="#575757">
|
|
<link title="Invidious" type="application/opensearchdescription+xml" rel="search" href="/opensearch.xml">
|
|
<link rel="stylesheet" href="/css/pure-min.css?v=<%= ASSET_COMMIT %>">
|
|
<link rel="stylesheet" href="/css/grids-responsive-min.css?v=<%= ASSET_COMMIT %>">
|
|
<link rel="stylesheet" href="/css/ionicons.min.css?v=<%= ASSET_COMMIT %>">
|
|
<link rel="stylesheet" href="/css/default.css?v=<%= ASSET_COMMIT %>">
|
|
<link rel="stylesheet" href="/css/carousel.css?v=<%= ASSET_COMMIT %>">
|
|
<script src="/js/_helpers.js?v=<%= ASSET_COMMIT %>"></script>
|
|
</head>
|
|
|
|
<body class="<%= dark_mode.blank? ? "no" : dark_mode %>-theme">
|
|
<span style="display:none" id="dark_mode_pref"><%= dark_mode %></span>
|
|
<div class="pure-g">
|
|
<div class="pure-u-1 pure-u-xl-20-24" id="contents">
|
|
<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"><img alt="😸" class="imga" style="vertical-align: middle;" width="28px;" height="28px;" src="data:image/png;base64,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">Invidious<img alt="🐈" style="vertical-align: middle;" width="28px;" height="28px;" class="imga" src="data:image/png;base64,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">catspeed<img alt="💨" class="imga" style="vertical-align: middle;" width="28px;" height="28px;" src="data:image/png;base64,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"></a><br />
|
|
server <%= str_uptime %>
|
|
</div>
|
|
<div class="pure-u-1 pure-u-md-12-24 searchbar">
|
|
<% autofocus = false %><%= rendered "components/search_box" %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<div class="pure-u-1 pure-u-md-8-24 user-field">
|
|
<% if env.get? "user" %>
|
|
<div class="pure-u-1-4">
|
|
<a id="toggle_theme" href="/toggle_theme?referer=<%= env.get?("current_page") %>" class="pure-menu-heading" title="<%= translate(locale, "toggle_theme") %>">
|
|
<% if dark_mode == "dark" %>
|
|
<i class="icon ion-ios-sunny"></i>
|
|
<% else %>
|
|
<i class="icon ion-ios-moon"></i>
|
|
<% end %>
|
|
</a>
|
|
</div>
|
|
<div class="pure-u-1-4">
|
|
<a id="notification_ticker" title="<%= translate(locale, "Subscriptions") %>" href="/feed/subscriptions" class="pure-menu-heading">
|
|
<% notification_count = env.get("user").as(Invidious::User).notifications.size %>
|
|
<% if CONFIG.enable_user_notifications && notification_count > 0 %>
|
|
<span id="notification_count"><%= notification_count %></span> <i class="icon ion-ios-notifications"></i>
|
|
<% else %>
|
|
<i class="icon ion-ios-notifications-outline"></i>
|
|
<% end %>
|
|
</a>
|
|
</div>
|
|
<div class="pure-u-1-4">
|
|
<a title="<%= translate(locale, "Preferences") %>" href="/preferences?referer=<%= env.get?("current_page") %>" class="pure-menu-heading">
|
|
<i class="icon ion-ios-cog"></i>
|
|
</a>
|
|
</div>
|
|
<% if env.get("preferences").as(Preferences).show_nick %>
|
|
<div class="pure-u-1-4" style="overflow: hidden; white-space: nowrap;">
|
|
<span id="user_name"><%= HTML.escape(env.get("user").as(Invidious::User).email) %></span>
|
|
</div>
|
|
<% end %>
|
|
<div class="pure-u-1-4">
|
|
<form action="/signout?referer=<%= env.get?("current_page") %>" method="post">
|
|
<input type="hidden" name="csrf_token" value="<%= HTML.escape(env.get?("csrf_token").try &.as(String) || "") %>">
|
|
<a class="pure-menu-heading" href="#">
|
|
<input style="all:unset" type="submit" value="<%= translate(locale, "Log out") %>">
|
|
</a>
|
|
</form>
|
|
</div>
|
|
<% else %>
|
|
<div class="pure-u-1-3">
|
|
<a id="toggle_theme" href="/toggle_theme?referer=<%= env.get?("current_page") %>" class="pure-menu-heading" title="<%= translate(locale, "toggle_theme") %>">
|
|
<% if dark_mode == "dark" %>
|
|
<i class="icon ion-ios-sunny"></i>
|
|
<% else %>
|
|
<i class="icon ion-ios-moon"></i>
|
|
<% end %>
|
|
</a>
|
|
</div>
|
|
<div class="pure-u-1-3">
|
|
<a title="<%= translate(locale, "Preferences") %>" href="/preferences?referer=<%= env.get?("current_page") %>" class="pure-menu-heading">
|
|
<i class="icon ion-ios-cog"></i>
|
|
</a>
|
|
</div>
|
|
<% if CONFIG.login_enabled %>
|
|
<div class="pure-u-1-3">
|
|
<a href="/login?referer=<%= env.get?("current_page") %>" class="pure-menu-heading">
|
|
<%= translate(locale, "Log in") %>
|
|
</a>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
|
|
<% if CONFIG.banner %>
|
|
<div class="h-box">
|
|
<h3><%= CONFIG.banner %></h3>
|
|
</div>
|
|
<% end %>
|
|
|
|
<%= content %>
|
|
|
|
<footer>
|
|
<div class="pure-g">
|
|
<div class="pure-u-1 pure-u-md-1-3">
|
|
<span>
|
|
<i class="icon ion-logo-github"></i>
|
|
<% if CONFIG.modified_source_code_url %>
|
|
<a href="https://github.com/iv-org/invidious" target='_blank'><%= translate(locale, "footer_original_source_code") %></a> /
|
|
<a href="<%= CONFIG.modified_source_code_url %>" target='_blank'><%= translate(locale, "footer_modfied_source_code") %></a>
|
|
<% else %>
|
|
<a href="https://github.com/iv-org/invidious" target='_blank'><%= translate(locale, "footer_source_code") %></a>
|
|
<% end %>
|
|
</span>
|
|
<span>
|
|
<i class="icon ion-ios-paper"></i>
|
|
<a href="https://github.com/iv-org/documentation" target='_blank'><%= translate(locale, "footer_documentation") %></a>
|
|
</span>
|
|
<span>
|
|
<i class="icon ion-ios-paper"></i>
|
|
<a href="https://catspeed.cc/freetube.php" target='_blank'>FreeTube Configuration Help</a>
|
|
</span>
|
|
</div>
|
|
|
|
<div class="pure-u-1 pure-u-md-1-3">
|
|
<span>
|
|
<a href="https://github.com/iv-org/invidious/blob/master/LICENSE" target='_blank'><%= translate(locale, "Released under the AGPLv3 on Github.") %></a>
|
|
</span>
|
|
<span>
|
|
<i class="icon ion-logo-javascript"></i>
|
|
<a rel="jslicense" href="/licenses" target='_blank'><%= translate(locale, "View JavaScript license information.") %></a>
|
|
</span>
|
|
<span>
|
|
<i class="icon ion-ios-paper"></i>
|
|
<a href="/privacy" target='_blank'><%= translate(locale, "View privacy policy.") %></a>
|
|
</span>
|
|
<span>
|
|
<i class="icon ion-ios-paper"></i>
|
|
<a href="https://updown.io/cr5y" target='_blank'>Server Status</a>
|
|
</span>
|
|
</div>
|
|
|
|
<div class="pure-u-1 pure-u-md-1-3">
|
|
<span>
|
|
<i class="icon ion-ios-wallet"></i>
|
|
<a href="https://catspeed.cc/donate/" target='_blank'>Donate to catspeed</a>
|
|
</span>
|
|
<span>
|
|
<i class="icon ion-ios-wallet"></i>
|
|
<a href="https://invidious.io/donate/" target='_blank'>Donate to invidious</a>
|
|
</span>
|
|
<span><%= translate(locale, "Current version: ") %> <%= CURRENT_VERSION %>-<%= CURRENT_COMMIT %> @ <%= CURRENT_BRANCH %></span>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
</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 %>
|
|
</body>
|
|
|
|
</html>
|