forked from midou/invidious
94 lines
2.7 KiB
Plaintext
94 lines
2.7 KiB
Plaintext
<% content_for "header" do %>
|
|
<title><%= translate(locale, "Subscriptions") %> - Invidious</title>
|
|
<link rel="alternate" type="application/rss+xml" title="RSS" href="/feed/private?token=<%= token %>" />
|
|
<% end %>
|
|
|
|
<%= rendered "components/feed_menu" %>
|
|
|
|
<div class="pure-g h-box">
|
|
<div class="pure-u-1-3">
|
|
<h3>
|
|
<a href="/subscription_manager"><%= translate(locale, "Manage subscriptions") %></a>
|
|
</h3>
|
|
</div>
|
|
<div class="pure-u-1-3" style="text-align:center;">
|
|
<h3>
|
|
<a href="/feed/history"><%= translate(locale, "Watch history") %></a>
|
|
</h3>
|
|
</div>
|
|
<div class="pure-u-1-3" style="text-align:right;">
|
|
<h3>
|
|
<a href="/feed/private?token=<%= token %>"><i class="icon ion-logo-rss"></i></a>
|
|
</h3>
|
|
</div>
|
|
</div>
|
|
|
|
<center><%= translate(locale, "`x` unseen notifications", "#{notifications.size}") %></center>
|
|
|
|
<% if !notifications.empty? %>
|
|
<div class="h-box">
|
|
<hr>
|
|
</div>
|
|
<% end %>
|
|
|
|
<div class="pure-g">
|
|
<% notifications.each_slice(4) do |slice| %>
|
|
<% slice.each do |item| %>
|
|
<%= rendered "components/item" %>
|
|
<% end %>
|
|
<% end %>
|
|
</div>
|
|
|
|
<div class="h-box">
|
|
<hr>
|
|
</div>
|
|
|
|
<div class="pure-g">
|
|
<% videos.each_slice(4) do |slice| %>
|
|
<% slice.each do |item| %>
|
|
<%= rendered "components/item" %>
|
|
<% end %>
|
|
<% end %>
|
|
</div>
|
|
|
|
<script>
|
|
function mark_watched(target) {
|
|
var tile = target.parentNode.parentNode.parentNode.parentNode.parentNode;
|
|
tile.style.display = "none";
|
|
|
|
var url = "/watch_ajax?action_mark_watched=1&redirect=false&id=" + target.getAttribute("data-id");
|
|
var xhr = new XMLHttpRequest();
|
|
xhr.responseType = "json";
|
|
xhr.timeout = 20000;
|
|
xhr.open("POST", url, true);
|
|
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
|
xhr.send("csrf_token=<%= URI.escape(env.get?("csrf_token").try &.as(String) || "") %>");
|
|
|
|
xhr.onreadystatechange = function() {
|
|
if (xhr.readyState == 4) {
|
|
if (xhr.status != 200) {
|
|
tile.style.display = "";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<div class="pure-g h-box">
|
|
<div class="pure-u-1 pure-u-lg-1-5">
|
|
<% if page >= 2 %>
|
|
<a href="/feed/subscriptions?max_results=<%= max_results %>&page=<%= page - 1 %>">
|
|
<%= translate(locale, "Previous page") %>
|
|
</a>
|
|
<% end %>
|
|
</div>
|
|
<div class="pure-u-1 pure-u-lg-3-5"></div>
|
|
<div style="text-align:right;" class="pure-u-1 pure-u-lg-1-5">
|
|
<% if (videos.size + notifications.size) == max_results %>
|
|
<a href="/feed/subscriptions?max_results=<%= max_results %>&page=<%= page + 1 %>">
|
|
<%= translate(locale, "Next page") %>
|
|
</a>
|
|
<% end %>
|
|
</div>
|
|
</div>
|