Add ability to mark videos as watched in subscription feed
parent
c7e8d623c0
commit
6b12f11e10
@ -0,0 +1,73 @@
|
|||||||
|
<% content_for "header" do %>
|
||||||
|
<title>History - Invidious</title>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<div class="pure-g">
|
||||||
|
<% watched.each_slice(4) do |slice| %>
|
||||||
|
<% slice.each do |item| %>
|
||||||
|
<div class="pure-u-1 pure-u-md-1-4">
|
||||||
|
<div class="h-box">
|
||||||
|
<a style="width:100%;" href="/watch?v=<%= item %>">
|
||||||
|
<% if env.get?("user") && env.get("user").as(User).preferences.thin_mode %>
|
||||||
|
<% else %>
|
||||||
|
<div class="thumbnail">
|
||||||
|
<img class="thumbnail" src="/vi/<%= item %>/mqdefault.jpg"/>
|
||||||
|
<p class="watched">
|
||||||
|
<a onclick="mark_unwatched(this)"
|
||||||
|
data-id="<%= item %>"
|
||||||
|
onmouseenter='this["href"]="javascript:void(0)"'
|
||||||
|
href="/mark_unwatched?id=<%= item %>"'
|
||||||
|
>
|
||||||
|
<i onmouseenter='this.setAttribute("class", "icon ion-ios-eye")'
|
||||||
|
onmouseleave='this.setAttribute("class", "icon ion-ios-eye-off")'
|
||||||
|
class="icon ion-ios-eye-off"
|
||||||
|
>
|
||||||
|
</i>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<p></p>
|
||||||
|
<% end %>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function mark_unwatched(target) {
|
||||||
|
var tile = target.parentNode.parentNode.parentNode.parentNode;
|
||||||
|
tile.style.display = "none";
|
||||||
|
|
||||||
|
var url = "/mark_unwatched?redirect=false&id=" + target.getAttribute("data-id");
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
xhr.responseType = "json";
|
||||||
|
xhr.timeout = 20000;
|
||||||
|
xhr.open("GET", url, true);
|
||||||
|
xhr.setRequestHeader("Redirect", "false");
|
||||||
|
xhr.send();
|
||||||
|
|
||||||
|
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-md-1-5">
|
||||||
|
<% if page >= 2 %>
|
||||||
|
<a href="/feed/history?page=<%= page - 1 %>">Previous page</a>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<div class="pure-u-1 pure-u-md-3-5"></div>
|
||||||
|
<div style="text-align:right;" class="pure-u-1 pure-u-md-1-5">
|
||||||
|
<% if watched.size >= limit %>
|
||||||
|
<a href="/feed/history?page=<%= page + 1 %>">Next page</a>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
Loading…
Reference in New Issue