server ver
This commit is contained in:
25
resources/views/layout8/about.blade.php
Normal file
25
resources/views/layout8/about.blade.php
Normal file
@@ -0,0 +1,25 @@
|
||||
@extends('layout')
|
||||
@section('content')
|
||||
<div class="page-header">
|
||||
<h3>About</h3>
|
||||
</div>
|
||||
<h4>What is w0bm.com about?</h4>
|
||||
<ul>
|
||||
<li>w0bm.com is a modern open source WebM sharing platform.</li>
|
||||
<li>We collect random videos from the internet.</li>
|
||||
</ul>
|
||||
|
||||
<h4>Following shortcuts are available:</h4>
|
||||
<ul class="strong-colored">
|
||||
<li>Press: <strong>R</strong> for random</li>
|
||||
<li>Press: <strong>→</strong>, <strong>D</strong> or <strong>L</strong> for next</li>
|
||||
<li>Press: <strong>←</strong>, <strong>A</strong> or <strong>H</strong> for prev</li>
|
||||
<li>Press: <strong>↑</strong> or <strong>W</strong> for volume up</li>
|
||||
<li>Press: <strong>↓</strong> or <strong>S</strong> for volume down</li>
|
||||
<li>Press: <strong>F</strong> for fav</li>
|
||||
<li>Scroll with your mouse up and down to trigger next or prev</li>
|
||||
</ul>
|
||||
|
||||
<p>Inspiriert durch <a href="http://z0r.de">z0r.de</a></p>
|
||||
@endsection
|
||||
|
21
resources/views/layout8/categories.blade.php
Normal file
21
resources/views/layout8/categories.blade.php
Normal file
@@ -0,0 +1,21 @@
|
||||
@extends('layout')
|
||||
|
||||
@section('content')
|
||||
<div class="page-header">
|
||||
<h1>Categories</h1>
|
||||
</div>
|
||||
<div class="row" id="categories">
|
||||
@foreach($categories as $category)
|
||||
<div class="col-sm-6 col-md-4 category">
|
||||
<div class="thumbnail">
|
||||
<img src="{{ asset('/asbach/images/cat/' . $category->shortname . '.png') }}" alt="{{$category->name}}">
|
||||
<div class="caption">
|
||||
<h3>{{$category->name}} <small>{{$category->videos()->count()}}</small></h3>
|
||||
<p>{{$category->description}}</p>
|
||||
<p><a href="{{$category->shortname}}" class="btn btn-primary" role="button">View</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endsection
|
8
resources/views/layout8/errors/404.blade.php
Normal file
8
resources/views/layout8/errors/404.blade.php
Normal file
@@ -0,0 +1,8 @@
|
||||
@extends('layout')
|
||||
@section('content')
|
||||
<center>
|
||||
<h1>404</h1>
|
||||
<img src="/404.gif">
|
||||
<br><a href="/1422">:3</a></br>
|
||||
</center>
|
||||
@endsection
|
90
resources/views/layout8/errors/500.blade.php
Normal file
90
resources/views/layout8/errors/500.blade.php
Normal file
@@ -0,0 +1,90 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="robots" content="noindex,nofollow" />
|
||||
<style>
|
||||
html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;}
|
||||
|
||||
html { background: #eee; padding: 10px }
|
||||
img { border: 0; }
|
||||
#sf-resetcontent { width:970px; margin:0 auto; }
|
||||
.sf-reset { font: 11px Verdana, Arial, sans-serif; color: #333 }
|
||||
.sf-reset .clear { clear:both; height:0; font-size:0; line-height:0; }
|
||||
.sf-reset .clear_fix:after { display:block; height:0; clear:both; visibility:hidden; }
|
||||
.sf-reset .clear_fix { display:inline-block; }
|
||||
.sf-reset * html .clear_fix { height:1%; }
|
||||
.sf-reset .clear_fix { display:block; }
|
||||
.sf-reset, .sf-reset .block { margin: auto }
|
||||
.sf-reset abbr { border-bottom: 1px dotted #000; cursor: help; }
|
||||
.sf-reset p { font-size:14px; line-height:20px; color:#868686; padding-bottom:20px }
|
||||
.sf-reset strong { font-weight:bold; }
|
||||
.sf-reset a { color:#6c6159; cursor: default; }
|
||||
.sf-reset a img { border:none; }
|
||||
.sf-reset a:hover { text-decoration:underline; }
|
||||
.sf-reset em { font-style:italic; }
|
||||
.sf-reset h1, .sf-reset h2 { font: 20px Georgia, "Times New Roman", Times, serif }
|
||||
.sf-reset .exception_counter { background-color: #fff; color: #333; padding: 6px; float: left; margin-right: 10px; float: left; display: block; }
|
||||
.sf-reset .exception_title { margin-left: 3em; margin-bottom: 0.7em; display: block; }
|
||||
.sf-reset .exception_message { display: block; }
|
||||
.sf-reset .traces li { font-size:12px; padding: 2px 4px; list-style-type:decimal; margin-left:20px; }
|
||||
.sf-reset .block { background-color:#FFFFFF; padding:10px 28px; margin-bottom:20px;
|
||||
-webkit-border-bottom-right-radius: 16px;
|
||||
-webkit-border-bottom-left-radius: 16px;
|
||||
-moz-border-radius-bottomright: 16px;
|
||||
-moz-border-radius-bottomleft: 16px;
|
||||
border-bottom-right-radius: 16px;
|
||||
border-bottom-left-radius: 16px;
|
||||
border-bottom:1px solid #ccc;
|
||||
border-right:1px solid #ccc;
|
||||
border-left:1px solid #ccc;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.sf-reset .block pre { overflow: auto; }
|
||||
.sf-reset .block_exception { background-color:#ddd; color: #333; padding:20px;
|
||||
-webkit-border-top-left-radius: 16px;
|
||||
-webkit-border-top-right-radius: 16px;
|
||||
-moz-border-radius-topleft: 16px;
|
||||
-moz-border-radius-topright: 16px;
|
||||
border-top-left-radius: 16px;
|
||||
border-top-right-radius: 16px;
|
||||
border-top:1px solid #ccc;
|
||||
border-right:1px solid #ccc;
|
||||
border-left:1px solid #ccc;
|
||||
overflow: hidden;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.sf-reset a { background:none; color:#868686; text-decoration:none; }
|
||||
.sf-reset a:hover { background:none; color:#313131; text-decoration:underline; }
|
||||
.sf-reset ol { padding: 10px 0; }
|
||||
.sf-reset h1 { background-color:#FFFFFF; padding: 15px 28px; margin-bottom: 20px;
|
||||
-webkit-border-radius: 10px;
|
||||
-moz-border-radius: 10px;
|
||||
border-radius: 10px;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="sf-resetcontent" class="sf-reset">
|
||||
<h1>Whoops, looks like something went wrong.</h1>
|
||||
<h2 class="block_exception clear_fix">
|
||||
<span class="exception_message">Please send the following text to an admin</span>
|
||||
</h2>
|
||||
<?php
|
||||
$iv = openssl_random_pseudo_bytes(16);
|
||||
?>
|
||||
@if(!env('APP_DEBUG'))
|
||||
<div class="block">
|
||||
{{bin2hex($iv)}}<br>
|
||||
{{openssl_encrypt($exception, 'aes128', env('APP_KEY'), 0, $iv)}}
|
||||
</div>
|
||||
@else
|
||||
<div class="block">
|
||||
<pre>{{$exception}}</pre>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
47
resources/views/layout8/errors/503.blade.php
Normal file
47
resources/views/layout8/errors/503.blade.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Please Stand By we are just fucking this up</title>
|
||||
<link href="https://fonts.googleapis.com/css?family=Lato:100" rel="stylesheet" type="text/css">
|
||||
|
||||
<style>
|
||||
html, body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
color: #B0BEC5;
|
||||
display: table;
|
||||
font-weight: 100;
|
||||
font-family: 'Lato';
|
||||
background-color: #161618;
|
||||
}
|
||||
|
||||
.container {
|
||||
text-align: center;
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.content {
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 72px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="content">
|
||||
<div class="title">Don't worry, we will be right back!</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
11
resources/views/layout8/impressum.blade.php
Normal file
11
resources/views/layout8/impressum.blade.php
Normal file
@@ -0,0 +1,11 @@
|
||||
@extends('layout')
|
||||
@section('content')
|
||||
<h4>Impressum</h4>
|
||||
<img src="/traurig.gif" height="25%" width="25%" style="float: right;">
|
||||
<ul>
|
||||
<li>Inhaber: Ashrat Mughdi</li>
|
||||
<li>Anschrift: Kartäusergasse 9-11, 50678 Köln</li>
|
||||
<li>Netzpostadresse: bka [at] tfwno [dot] gf</li>
|
||||
<li>Für anderweitigen Kontakt stehe ich per <a href="/irc">IRC</a> zur Verfügung!</li>
|
||||
</ul>
|
||||
@endsection
|
32
resources/views/layout8/index.blade.php
Normal file
32
resources/views/layout8/index.blade.php
Normal file
@@ -0,0 +1,32 @@
|
||||
@extends('layout')
|
||||
@section('content')
|
||||
<div class="page-header">
|
||||
<h1>Songindex</h1>
|
||||
</div>
|
||||
<table class="table table-hover table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Interpret</th>
|
||||
<th>Songtitle</th>
|
||||
<th>Video Source</th>
|
||||
<th>Category</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($videos as $video)
|
||||
<tr>
|
||||
<td><a href="{{url($video->id)}}">{{$video->id}}</a></td>
|
||||
<td>{{$video->interpret or ''}}</td>
|
||||
<td>{{$video->songtitle or ''}}</td>
|
||||
<td>{{$video->imgsource or ''}}</td>
|
||||
<td><a href="{{url($video->category->shortname)}}">{{$video->category->name}}</a></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="pull-right">
|
||||
{!! $videos->render() !!}
|
||||
</div>
|
||||
@endsection
|
8
resources/views/layout8/irc.blade.php
Normal file
8
resources/views/layout8/irc.blade.php
Normal file
@@ -0,0 +1,8 @@
|
||||
@extends('layout')
|
||||
@section('content')
|
||||
<div class="page-header">
|
||||
<h1>IRC</h1>
|
||||
</div>
|
||||
<h3>irc.n0xy.net +6697 #w0bm</h3>
|
||||
@endsection
|
||||
|
297
resources/views/layout8/layout.blade.php
Normal file
297
resources/views/layout8/layout.blade.php
Normal file
@@ -0,0 +1,297 @@
|
||||
<!doctype html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport"
|
||||
content="width=device-width,initial-scale=1">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="_token" content="{{csrf_token()}}">
|
||||
<link rel="icon" href="/asbach/favicon.png">
|
||||
<title>w0bm.com - WebMs with sound!</title>
|
||||
<link rel="stylesheet" href="/asbach/css/style.css">
|
||||
<link rel="stylesheet" href="//cdn.jsdelivr.net/jquery.mcustomscrollbar/3.0.6/jquery.mCustomScrollbar.min.css">
|
||||
<link rel="favicon"
|
||||
type="image/ico"
|
||||
href="favicon.ico" />
|
||||
<link href="//fonts.googleapis.com/css?family=Oswald" rel="stylesheet" type="text/css">
|
||||
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="/asbach/css/w0bmcustom.css">
|
||||
</head>
|
||||
<body>
|
||||
<canvas id="bg" @if(!Session::get('background', true)) style="display: none;"@endif></canvas>
|
||||
|
||||
@include('partials.navigation')
|
||||
|
||||
<div class="wrapper">
|
||||
@yield('aside')
|
||||
<div style="width: auto; overflow: hidden; position: relative;">
|
||||
<div class="container">
|
||||
@yield('content')
|
||||
</div>
|
||||
@include('partials.flash')
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<script src="/js/jquery.min.js"></script>
|
||||
<script src="/js/bootstrap.min.js"></script>
|
||||
<script src="/js/jquery.mCustomScrollbar.concat.min.js"></script>
|
||||
<script src="/js/isotope.pkgd.min.js"></script>
|
||||
<script src="/js/imagesloaded.pkgd.min.js"></script>
|
||||
<script>
|
||||
function flash(type, message) {
|
||||
var html = '<div class="alert alert-:TYPE: alert-dismissable" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>:REPLACE:</div>';
|
||||
var alerts = $('.flashcontainer > .container');
|
||||
if(type === 'error') type = 'danger';
|
||||
alerts.append(html.replace(/:TYPE:/, type).replace(/:REPLACE:/, message));
|
||||
alertrm(jQuery);
|
||||
}
|
||||
|
||||
window.requestAnimFrame = (function(){
|
||||
return window.requestAnimationFrame
|
||||
|| window.webkitRequestAnimationFrame
|
||||
|| window.mozRequestAnimationFrame
|
||||
|| function(callback) { window.setTimeout(callback, 1000 / 60);};
|
||||
})();
|
||||
|
||||
var video = document.getElementById('video');
|
||||
if(video !== null) {
|
||||
video.volume = 0.3;
|
||||
if (typeof localStorage != "undefined") {
|
||||
video.volume = localStorage.getItem("volume") || 0.3;
|
||||
video.addEventListener("volumechange", function () {
|
||||
localStorage.setItem("volume", video.volume);
|
||||
});
|
||||
}
|
||||
|
||||
var canvas = document.getElementById('bg');
|
||||
var context = canvas.getContext('2d');
|
||||
var cw = canvas.width = canvas.clientWidth|0;
|
||||
var ch = canvas.height = canvas.clientHeight|0;
|
||||
|
||||
function animationLoop() {
|
||||
if(video.paused || video.ended)
|
||||
return false;
|
||||
context.drawImage(video, 0, 0, cw, ch);
|
||||
window.requestAnimFrame(animationLoop);
|
||||
}
|
||||
video.addEventListener('play', function() {
|
||||
animationLoop();
|
||||
});
|
||||
if(video.autoplay)
|
||||
animationLoop();
|
||||
|
||||
} else {
|
||||
var canvas = document.getElementById('bg');
|
||||
canvas.parentNode.removeChild(canvas);
|
||||
}
|
||||
|
||||
//temporary fix for scrolling not working on other pages
|
||||
var regex = /w0bm.com\/(?:.+\/)?(\d+)/i;
|
||||
if(regex.test(window.location.href) && $('video').length) {
|
||||
$('html').on('keydown', function(e) {
|
||||
if(e.defaultPrevented || e.target.nodeName.match(/\b(input|textarea)\b/i)) {
|
||||
return;
|
||||
}
|
||||
else if(e.keyCode == 39) {
|
||||
get_next();
|
||||
}
|
||||
else if(e.keyCode == 37) {
|
||||
get_prev();
|
||||
}
|
||||
else if(e.keyCode == 82) {
|
||||
get_random();
|
||||
}
|
||||
else if(e.keyCode == 70) {
|
||||
to_favs();
|
||||
}
|
||||
});
|
||||
$('.wrapper > div').on('DOMMouseScroll mousewheel', function(e) {
|
||||
e.deltaY < 0 ? get_next() : get_prev();
|
||||
return false;
|
||||
});
|
||||
if(navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
|
||||
$('video').on('click', function() {
|
||||
$(this).get(0).paused ? $(this).get(0).play() : $(this).get(0).pause();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function get_next() {
|
||||
if($('#next').css('visibility') != 'hidden') {
|
||||
$('#next').get(0).click();
|
||||
}
|
||||
}
|
||||
|
||||
function get_prev() {
|
||||
if($('#prev').css('visibility') != 'hidden') {
|
||||
$('#prev').get(0).click();
|
||||
}
|
||||
}
|
||||
|
||||
function get_random() {
|
||||
$('#prev').next().get(0).click();
|
||||
}
|
||||
|
||||
function to_favs() {
|
||||
$('#fav').get(0).click();
|
||||
}
|
||||
|
||||
(function ($) {
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
|
||||
}
|
||||
});
|
||||
var commentform = $('#commentForm');
|
||||
commentform.on('submit', function (e) {
|
||||
e.preventDefault();
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: commentform.attr('action'),
|
||||
data: commentform.serialize()
|
||||
}).done(function (data) {
|
||||
flash('success', 'Comment saved successfully');
|
||||
$('.nocomments').remove();
|
||||
$('.commentwrapper').append(data);
|
||||
var textarea = commentform.find('textarea').val('');
|
||||
textarea.blur();
|
||||
}).fail(function(data){
|
||||
flash('error', 'Error saving comment');
|
||||
flash('error', data);
|
||||
});
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
|
||||
(function ($) {
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
|
||||
}
|
||||
});
|
||||
var favBtn = $('#fav');
|
||||
favBtn.on('click touchdown', function (e) {
|
||||
e.preventDefault();
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: favBtn.attr('href')
|
||||
}).done(function (data) {
|
||||
flash('success', data);
|
||||
var icon = favBtn.find('i');
|
||||
if(icon.hasClass('fa-heart-o')) {
|
||||
icon.removeClass('fa-heart-o');
|
||||
icon.addClass('fa-heart');
|
||||
} else {
|
||||
icon.removeClass('fa-heart');
|
||||
icon.addClass('fa-heart-o');
|
||||
}
|
||||
});
|
||||
})
|
||||
})(jQuery);
|
||||
|
||||
(function ($) {
|
||||
$('#togglebg').on('click touchdown', function (e) {
|
||||
e.preventDefault();
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: $(this).attr('href'),
|
||||
data: {}
|
||||
}).done(function () {
|
||||
$('#bg').toggle();
|
||||
});
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
(function ($) {
|
||||
$(':not(form)[data-confirm]').on('click touchdown', function () {
|
||||
return confirm($(this).data('confirm'));
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
(function ($) {
|
||||
$(".comments").mCustomScrollbar({
|
||||
axis: 'y',
|
||||
theme: 'minimal',
|
||||
scrollInertia: 0
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
var alertrm = function ($) {
|
||||
$('.alert').each(function (index) {
|
||||
$(this).delay(3000 + index * 1000).slideUp(300);
|
||||
});
|
||||
};
|
||||
alertrm(jQuery);
|
||||
|
||||
$('#categories').imagesLoaded(function () {
|
||||
$('#categories').isotope({
|
||||
itemSelector: '.category',
|
||||
percentPosition: true,
|
||||
layoutMode: 'masonry'
|
||||
});
|
||||
});
|
||||
|
||||
$(function() {
|
||||
$('[data-toggle="popover"]').popover({
|
||||
html: true
|
||||
});
|
||||
});
|
||||
|
||||
/* bye bye kadse D: greetz gz
|
||||
(function() {
|
||||
new Image().src = "/images/catfart/cutf.png";
|
||||
var n = document.createElement("div");
|
||||
var a = new Audio();
|
||||
|
||||
a.addEventListener("pause", function () {
|
||||
n.setAttribute("class", "catfart");
|
||||
});
|
||||
|
||||
a.addEventListener("play", function () {
|
||||
n.setAttribute("class", "catfart farting");
|
||||
});
|
||||
|
||||
n.addEventListener("mouseover", function () {
|
||||
if (!a.paused) return;
|
||||
a.src = "/images/catfart/pupsi" + (Math.random()*28|0) + ".mp3";
|
||||
a.play();
|
||||
});
|
||||
|
||||
n.setAttribute("class", "catfart");
|
||||
document.body.appendChild(n);
|
||||
})();*/
|
||||
|
||||
(function() {
|
||||
var v = document.getElementById("video");
|
||||
if (typeof v == "undefined") return;
|
||||
var p = v.parentNode;
|
||||
p.style.marginBottom = "1px";
|
||||
|
||||
var bar = document.createElement("div");
|
||||
var outerBar = document.createElement("div");
|
||||
outerBar.appendChild(bar);
|
||||
p.appendChild(outerBar);
|
||||
|
||||
$(outerBar).css({
|
||||
height: "1px", width: "100%",
|
||||
overflow: "hidden", willChange: "transform",
|
||||
position: "absolute", bottom: "0"
|
||||
});
|
||||
|
||||
$(bar).css({
|
||||
height: "inherit", width: "inherit",
|
||||
position: "absolute", transform: "translateX(-100%)",
|
||||
backgroundColor: "rgba(31, 178, 176, 0.4)"
|
||||
});
|
||||
|
||||
var update = function () {
|
||||
requestAnimationFrame(update);
|
||||
if (v.paused) return;
|
||||
var perc = 100 / v.duration * v.currentTime;
|
||||
bar.style.transform = "translateX("+(-100 + perc)+"%)";
|
||||
};
|
||||
update();
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
100
resources/views/layout8/matrix.blade.php
Normal file
100
resources/views/layout8/matrix.blade.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<style type="text/css">
|
||||
* {margin: 0; padding: 0}
|
||||
body {background: #000;overflow:hidden;}
|
||||
canvas {display: block;}
|
||||
.matrix {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
font-family: monospace;
|
||||
}
|
||||
.matrix > .inner {
|
||||
position: absolute;
|
||||
color: white;
|
||||
top: 40%;
|
||||
}
|
||||
.inner {
|
||||
background: #000000b5;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#bluepill a {
|
||||
width: 26px;
|
||||
height: 10px;
|
||||
display: inline-block;
|
||||
color: blue;
|
||||
background: blue;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#redpill a {
|
||||
width: 26px;
|
||||
height: 10px;
|
||||
display: inline-block;
|
||||
color: red;
|
||||
background: red;
|
||||
border-radius: 5px;
|
||||
}
|
||||
</style>
|
||||
<div class="matrix">
|
||||
<div class="inner">
|
||||
<h3><p><b><i>You are a slave {{Auth::user()->username}}</i></b></p></h3>
|
||||
<br>
|
||||
<p>Take control over your chats, leave Discord for good!</p>
|
||||
<p>Join [matrix] today!</p>
|
||||
<p>Why should you consider either running a [matrix] synapse yourself or start using someone elses:</p>
|
||||
<p>Discord is evil, it took away the freedom you and I deserve, it makes you a slave to their services,<br> makes you obey their rules, includes you in a unwanted botnet where you have no freedom at all!</p>
|
||||
<p>It's time to break free {{Auth::user()->username}}</p>
|
||||
<p>Choose your fate</p>
|
||||
<span id="bluepill"><a href="https://discordapp.com/app"></a></span> <span id="redpill"><a href="https://github.com/matrix-org/synapse" target="_blank"></a></span>
|
||||
<p><code>#!w0bm:f0ck.it</code></p>
|
||||
<br>
|
||||
<p><small>We are happy to help if you have any trouble setting up your synapse</small></p>
|
||||
</div>
|
||||
</div>
|
||||
<canvas></canvas>
|
||||
<audio src="/clubbed.mp3" autoplay loop></audio>
|
||||
<script type="text/javascript">
|
||||
// Initialising the canvas
|
||||
var canvas = document.querySelector('canvas'),
|
||||
ctx = canvas.getContext('2d');
|
||||
|
||||
// Setting the width and height of the canvas
|
||||
canvas.width = window.innerWidth;
|
||||
canvas.height = window.innerHeight;
|
||||
|
||||
// Setting up the letters
|
||||
var letters = 'ABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZ';
|
||||
letters = letters.split('');
|
||||
|
||||
// Setting up the columns
|
||||
var fontSize = 10,
|
||||
columns = canvas.width / fontSize;
|
||||
|
||||
// Setting up the drops
|
||||
var drops = [];
|
||||
for (var i = 0; i < columns; i++) {
|
||||
drops[i] = 1;
|
||||
}
|
||||
|
||||
// Setting up the draw function
|
||||
function draw() {
|
||||
ctx.fillStyle = 'rgba(0, 0, 0, .1)';
|
||||
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
||||
for (var i = 0; i < drops.length; i++) {
|
||||
var text = letters[Math.floor(Math.random() * letters.length)];
|
||||
ctx.fillStyle = '#0f0';
|
||||
ctx.fillText(text, i * fontSize, drops[i] * fontSize);
|
||||
drops[i]++;
|
||||
if (drops[i] * fontSize > canvas.height && Math.random() > .95) {
|
||||
drops[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Loop the animation
|
||||
setInterval(draw, 33);
|
||||
</script>
|
@@ -0,0 +1,2 @@
|
||||
<h3><a href="{{url('user/' . $user->username)}}">{{$user->username}}</a> mentioned you in a comment.</h3>
|
||||
<p><a href="{{url('user/' . $user->username)}}">{{$user->username}}</a> mentioned you in a comment on the following video: <a href="{{url($video->id)}}">/{{$video->id}}</a></p>
|
2
resources/views/layout8/messages/videocomment.blade.php
Normal file
2
resources/views/layout8/messages/videocomment.blade.php
Normal file
@@ -0,0 +1,2 @@
|
||||
<h3>New comment on your video <a href="{{url($video->id)}}">/{{$video->id}}</a></h3>
|
||||
<p><a href="{{url('user/' . $user->username)}}">{{$user->username}}</a> made a comment on your video.</p>
|
14
resources/views/layout8/partials/comment.blade.php
Normal file
14
resources/views/layout8/partials/comment.blade.php
Normal file
@@ -0,0 +1,14 @@
|
||||
<div class="panel @if($del = !is_null($comment->deleted_at)) panel-danger @else panel-default @endif">
|
||||
<div class="panel-body">
|
||||
@simplemd($comment->content)
|
||||
</div>
|
||||
<div class="panel-footer">by <a href="/user/{{$comment->user->username}}">{{$comment->user->username}}</a> <small>{{$comment->created_at->diffForHumans()}}</small>
|
||||
@if($mod)
|
||||
@if($del)
|
||||
<a href="{{url('comment/' . $comment->id . '/restore')}}" class="btn btn-success">Restore</a>
|
||||
@else
|
||||
<a data-confirm="Do you really want to delete that comment?" class="btn btn-danger" href="{{url('comment/' . $comment->id . '/delete')}}">Delete</a>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
9
resources/views/layout8/partials/commentform.blade.php
Normal file
9
resources/views/layout8/partials/commentform.blade.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<form id="commentForm" action="{{action('CommentController@store', ['id' => $video->id])}}" method="post">
|
||||
{!! csrf_field() !!}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
{!! Form::textarea('comment', null, ['placeholder' => 'Write comment...', 'class' => 'form-control', 'required' => 'required']) !!}
|
||||
</div>
|
||||
<div class="panel-footer"><button type="submit" class="btn btn-primary btn-sm">Send</button></div>
|
||||
</div>
|
||||
</form>
|
26
resources/views/layout8/partials/comments.blade.php
Normal file
26
resources/views/layout8/partials/comments.blade.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<aside class="comments hidden-xs">
|
||||
@if(Auth::check())
|
||||
@if($video->id == '30186')
|
||||
@include('partials.thread_closed')
|
||||
@else
|
||||
@include('partials.commentform')
|
||||
@endif
|
||||
@endif
|
||||
<div class="commentwrapper">
|
||||
<?php
|
||||
if($mod = (Auth::check() && Auth::user()->can('delete_comment'))) $comments = $video->comments()->withTrashed()->get();
|
||||
else $comments = $video->comments;
|
||||
?>
|
||||
@if(count($comments) > 0)
|
||||
@foreach($comments as $comment)
|
||||
@include('partials.comment', ['comment' => $comment, 'mod' => $mod])
|
||||
@endforeach
|
||||
@else
|
||||
<div class="panel panel-default nocomments">
|
||||
<div class="panel-body">
|
||||
No comments yet.
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</aside>
|
36
resources/views/layout8/partials/flash.blade.php
Normal file
36
resources/views/layout8/partials/flash.blade.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<div class="flashcontainer">
|
||||
<div class="container">
|
||||
@if($errors->count() > 0)
|
||||
@foreach($errors->all() as $error)
|
||||
<div class="alert alert-danger alert-dismissable" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{ $error }}
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
@if(Session::has('error'))
|
||||
<div class="alert alert-danger alert-dismissable" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{ session('error') }}
|
||||
</div>
|
||||
@endif
|
||||
@if(Session::has('success'))
|
||||
<div class="alert alert-success alert-dismissable" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{ session('success') }}
|
||||
</div>
|
||||
@endif
|
||||
@if(Session::has('info'))
|
||||
<div class="alert alert-info alert-dismissable" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{ session('info') }}
|
||||
</div>
|
||||
@endif
|
||||
@if(Session::has('warning'))
|
||||
<div class="alert alert-warning alert-dismissable" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{ session('warning') }}
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
0
resources/views/layout8/partials/header.blade.php
Normal file
0
resources/views/layout8/partials/header.blade.php
Normal file
43
resources/views/layout8/partials/navigation.blade.php
Normal file
43
resources/views/layout8/partials/navigation.blade.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<nav class="navbar navbar-inverse navbar-static-top">
|
||||
<div class="container-fluid">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/"><img src="/asbach/logo.png"></a>
|
||||
</div>
|
||||
|
||||
<!-- Collect the nav links, forms, and other content for toggling -->
|
||||
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
||||
<ul class="nav navbar-nav navbar-left">
|
||||
<li><a href="{{url('categories')}}"><i class="fa fa-bars"></i> Categories</a></li>
|
||||
<li><a href="{{url('index')}}"><i class="fa fa-music"></i> Songindex</a></li>
|
||||
<li><a href="{{url('irc')}}"><i class="fa fa-comment"></i> IRC</a></li>
|
||||
<li><a href="{{url('togglebackground')}}" id="togglebg"><i class="fa fa-power-off"></i> Background</a></li>
|
||||
<li><a href="{{url('about')}}"><i class="fa fa-exclamation"></i> About</a></li>
|
||||
</ul>
|
||||
@if(Auth::check())
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li><a href="{{url('upload')}}"><i class="fa fa-cloud-upload"></i> Upload</a></li>
|
||||
<li><a href="{{url('user', Auth::user()->username)}}"><i class="fa fa-user"></i> {{Auth::user()->username}}</a></li>
|
||||
<li><a href="{{url('logout')}}"><i class="fa fa-times"></i> Logout</a></li>
|
||||
</ul>
|
||||
@else
|
||||
<form action="{{action('UserController@login')}}" method="post" class="navbar-form navbar-right">
|
||||
{!! csrf_field() !!}
|
||||
<div class="form-group">
|
||||
<input type="text" name="identifier" placeholder="Username/Email" class="form-control">
|
||||
<input type="password" name="password" placeholder="Password" class="form-control">
|
||||
<input type="checkbox" name="remember">
|
||||
<button type="submit" class="btn btn-primary">Login</button>
|
||||
<a href="{{url('register')}}" class="btn btn-success">Register</a>
|
||||
</div>
|
||||
</form>
|
||||
@endif
|
||||
</div><!-- /.navbar-collapse -->
|
||||
</div><!-- /.container-fluid -->
|
||||
</nav>
|
3
resources/views/layout8/partials/thread_closed.php
Normal file
3
resources/views/layout8/partials/thread_closed.php
Normal file
@@ -0,0 +1,3 @@
|
||||
<div class="thread_closed">
|
||||
<span>Thread closed! ;__;</span>
|
||||
</div>
|
65
resources/views/layout8/profile.blade.php
Normal file
65
resources/views/layout8/profile.blade.php
Normal file
@@ -0,0 +1,65 @@
|
||||
@extends('layout')
|
||||
@section('content')
|
||||
|
||||
<div class="page-header">
|
||||
<h1>{{$user->username}} <small><i class="fa fa-cloud-upload"></i> {{ $user->videos()->count() }} Uploads <i class="fa fa-commenting"></i> {{ $user->comments()->count() }} Comments</small>@if($user->is('Moderator')) <span class="pull-right" style="
|
||||
color: #1FB2B0;
|
||||
"><i class="fa fa-bolt"></i></span> @endif</h1>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h2>Uploads</h2>
|
||||
<table class="table table-hover table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Interpret</th>
|
||||
<th>Songtitle</th>
|
||||
<th>Video Source</th>
|
||||
<th>Category</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($user->videos as $video)
|
||||
<tr>
|
||||
<td><a href="{{url($video->id)}}">{{$video->id}}</a></td>
|
||||
<td>{{$video->interpret or ''}}</td>
|
||||
<td>{{$video->songtitle or ''}}</td>
|
||||
<td>{{$video->imgsource or ''}}</td>
|
||||
<td><a href="{{url($video->category->shortname)}}">{{$video->category->name}}</a></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h2>Favorites</h2>
|
||||
<table class="table table-hover table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Interpret</th>
|
||||
<th>Songtitle</th>
|
||||
<th>Video Source</th>
|
||||
<th>Category</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($user->favs as $video)
|
||||
<tr>
|
||||
<td><a href="{{url($video->id)}}">{{$video->id}}</a></td>
|
||||
<td>{{$video->interpret or ''}}</td>
|
||||
<td>{{$video->songtitle or ''}}</td>
|
||||
<td>{{$video->imgsource or ''}}</td>
|
||||
<td><a href="{{url($video->category->shortname)}}">{{$video->category->name}}</a></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@endsection
|
17
resources/views/layout8/settings.blade.php
Normal file
17
resources/views/layout8/settings.blade.php
Normal file
@@ -0,0 +1,17 @@
|
||||
@extends('layout')
|
||||
@section('content')
|
||||
<h4>Layouts</h4>
|
||||
<div class="box">
|
||||
<h5>Change how you experience w0bm.com</h5>
|
||||
<ul class="layout-ul">
|
||||
<li><a class="nav-link layout1" style="font-size: 10px;" href="/api/user/layout?layout=1">w0bm</a>The default look</li>
|
||||
<li><a class="nav-link layout2" style="font-size: 10px;" href="/api/user/layout?layout=2">Njum</a>Alternative approach</li>
|
||||
<li><a class="nav-link layout3" style="font-size: 10px;" href="/api/user/layout?layout=3">z0mb</a>z0r.de layout + theme</li>
|
||||
<li><a class="nav-link layout3" style="font-size: 10px;" href="/api/user/layout?layout=4">nojs</a>The nojs layout (broken)</li>
|
||||
<li><a class="nav-link layout3" style="font-size: 10px;" href="/api/user/layout?layout=5">Mobile</a>The mobile optimized default layout</li>
|
||||
<li><a class="nav-link layout3" style="font-size: 10px;" href="/api/user/layout?layout=6">Marderchen</a>This is marders Layout, it has no async js</li>
|
||||
<li><a class="nav-link layout3" style="font-size: 10px;" href="/api/user/layout?layout=7">2017</a>The layout from 2017</li>
|
||||
<li><a class="nav-link layout3" style="font-size: 10px;" href="/api/user/layout?layout=8">2015</a>The OG w0bm</li>
|
||||
</ul>
|
||||
</div>
|
||||
@endsection
|
67
resources/views/layout8/upload.blade.php
Normal file
67
resources/views/layout8/upload.blade.php
Normal file
@@ -0,0 +1,67 @@
|
||||
@extends('layout')
|
||||
@section('content')
|
||||
<div class="page-header">
|
||||
<h1>Upload</h1>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<div class="row">
|
||||
<form class="form-horizontal" method="post" action="/api/video/upload" enctype="multipart/form-data">
|
||||
{!! csrf_field() !!}
|
||||
<div class="form-group">
|
||||
<label for="interpret" class="col-sm-2 control-label">Interpret</label>
|
||||
<div class="col-sm-10">
|
||||
{!! Form::text('interpret', null, ['class' => 'form-control', 'placeholder' => 'Interpret']) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="songtitle" class="col-sm-2 control-label">Song title</label>
|
||||
<div class="col-sm-10">
|
||||
{!! Form::text('songtitle', null, ['class' => 'form-control', 'placeholder' => 'Song Title']) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="imgsource" class="col-sm-2 control-label">Video source</label>
|
||||
<div class="col-sm-10">
|
||||
{!! Form::text('imgsource', null, ['class' => 'form-control', 'placeholder' => 'Video Source']) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="category" class="col-sm-2 control-label">Category</label>
|
||||
<div class="col-sm-10">
|
||||
<?php
|
||||
$categories = [];
|
||||
foreach(App\Models\Category::all() as $cat) {
|
||||
$categories[$cat->id] = $cat->name;
|
||||
}
|
||||
?>
|
||||
{!! Form::select('category', $categories, 8, ['class' => 'form-control']) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="file" class="col-sm-2 control-label">File</label>
|
||||
<div class="col-sm-10">
|
||||
{!! Form::file('file', ['class' => 'form-control', 'placeholder' => 'Select file']) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button type="submit" class="btn btn-default">Upload</button> Vor dem hochladen bitte die <a href="/about">AGB</a> lesen.
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">Das Regelwerk</div>
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">1. WebMs müssen Ton haben!</li>
|
||||
<li class="list-group-item list-group-item-danger">2. Keine Videos mit Minderjährigen die gerade ordentlich geweitet werden. Keep it legal! ;)</li>
|
||||
<li class="list-group-item">3. Sei kein Hurensohn!</li>
|
||||
</ul>
|
||||
<div class="panel-body">Du kannst täglich 20 WebMs scheißeposten mit einer maximalen Dateigröße von 10MB.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
0
resources/views/layout8/vendor/.gitkeep
vendored
Normal file
0
resources/views/layout8/vendor/.gitkeep
vendored
Normal file
95
resources/views/layout8/video.blade.php
Normal file
95
resources/views/layout8/video.blade.php
Normal file
@@ -0,0 +1,95 @@
|
||||
@extends('layout')
|
||||
@section('content')
|
||||
<?php $category = isset($category) ? $category : false ?>
|
||||
<div class="vertical-align">
|
||||
<div class="wrapper">
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<video id="video" controls loop autoplay src="//w0bm.com/b/{{ $video->file }}"></video>
|
||||
</div>
|
||||
@if($category)
|
||||
<div class="text-center" style="position: unset;">
|
||||
@if(($prev = $video->getPrev(true)) === null)
|
||||
<a class="first" href="#" style="visibility: hidden;">← first</a>
|
||||
<a id="prev" href="#" style="visibility: hidden;">Prev</a> |
|
||||
@else
|
||||
<a class="first" href="{{url($video->category->shortname, $video::whereCategoryId($video->category->id)->first()->id)}}">← first</a>
|
||||
<a id="prev" href="{{url($video->category->shortname, [$prev->id])}}">Prev</a> |
|
||||
@endif
|
||||
<a href="{{url($video->category->shortname)}}">{{$video->category->name}}</a>
|
||||
@if(($next = $video->getNext(true)) === null)
|
||||
| <a id="next" href="#" style="visibility: hidden;">Next</a>
|
||||
<a class="last" href="#" style="visibility: hidden;">last →</a>
|
||||
@else
|
||||
| <a id="next" href="{{url($video->category->shortname, [$next->id])}}">Next</a>
|
||||
<a class="last" href="{{url($video->category->shortname, $video::whereCategoryId($video->category->id)->max('id'))}}">last →</a>
|
||||
@endif
|
||||
<br><span class="videoinfo">
|
||||
@if(auth()->check())
|
||||
@if(auth()->user()->hasFaved($video->id))
|
||||
<a id="fav" href="{{url($video->id . '/fav')}}"><i class="fa fa-heart"></i></a>
|
||||
@else
|
||||
<a id="fav" href="{{url($video->id . '/fav')}}"><i class="fa fa-heart-o"></i></a>
|
||||
@endif
|
||||
@else
|
||||
<a href="{{url($video->id . '/fav')}}"><i class="fa fa-heart-o"></i></a>
|
||||
@endif
|
||||
<i class="fa fa-info-circle"
|
||||
style="cursor: pointer"
|
||||
data-toggle="popover"
|
||||
data-placement="top"
|
||||
data-trigger="hover"
|
||||
title="Information"
|
||||
data-content="
|
||||
@if($video->interpret) <em>Interpret:</em> {{$video->interpret}}<br>@endif
|
||||
@if($video->songtitle) <em>Songtitle:</em> {{$video->songtitle}}<br>@endif
|
||||
@if($video->imgsource) <em>Video Source:</em> {{$video->imgsource}}<br>@endif
|
||||
<em>Category:</em> {{$video->category->name}}"></i> uploaded by <i style="color: rgb(233, 233, 233);"><a href="{{ url('user/' . $video->user->username) }}">{{ $video->user->username }}@if($video->user->is('Moderator')) <i class="fa fa-bolt"></i>@endif</a></i>  {{ $video->created_at->diffForHumans() }}@if(auth()->check() && auth()->user()->can('delete_video')) <a data-confirm="Do you really want to delete this video?" class="btn btn-danger" href="{{url($video->id . '/delete')}}">Delete</a>@endif</span>
|
||||
</div>
|
||||
@else
|
||||
<div class="text-center" style="position: unset;">
|
||||
@if(($prev = $video->getPrev()) === null)
|
||||
<a class="first" href="#" style="visibility: hidden;">← first</a>
|
||||
<a id="prev" href="#" style="visibility: hidden;">← prev</a> |
|
||||
@else
|
||||
<a class="first" href="{{url($video->first()->id)}}">← first</a>
|
||||
<a id="prev" href="{{url($prev->id)}}">← prev</a> |
|
||||
@endif
|
||||
<a href="{{url('/')}}">random</a>
|
||||
@if(($next = $video->getNext()) === null)
|
||||
| <a id="next" href="#" style="visibility: hidden;">next →</a>
|
||||
<a class="last" href="#" style="visibility: hidden;">last →</a>
|
||||
@else
|
||||
| <a id="next" href="{{url($next->id)}}">next →</a>
|
||||
<a class="last" href="{{url($video->max('id'))}}">last →</a>
|
||||
@endif
|
||||
<br><span class="videoinfo">
|
||||
@if(auth()->check())
|
||||
@if(auth()->user()->hasFaved($video->id))
|
||||
<a id="fav" href="{{url($video->id . '/fav')}}"><i class="fa fa-heart"></i></a>
|
||||
@else
|
||||
<a id="fav" href="{{url($video->id . '/fav')}}"><i class="fa fa-heart-o"></i></a>
|
||||
@endif
|
||||
@else
|
||||
<a href="{{url($video->id . '/fav')}}"><i class="fa fa-heart-o"></i></a>
|
||||
@endif
|
||||
<i class="fa fa-info-circle"
|
||||
style="cursor: pointer"
|
||||
data-toggle="popover"
|
||||
data-placement="top"
|
||||
data-trigger="hover"
|
||||
title="Information"
|
||||
data-content="
|
||||
@if($video->interpret) <em>Interpret:</em> {{$video->interpret}}<br>@endif
|
||||
@if($video->songtitle) <em>Songtitle:</em> {{$video->songtitle}}<br>@endif
|
||||
@if($video->imgsource) <em>Video Source:</em> {{$video->imgsource}}<br>@endif
|
||||
<em>Category:</em> {{$video->category->name}}"></i> uploaded by <i style="color: rgb(233, 233, 233);"><a href="{{ url('user/' . $video->user->username) }}">{{ $video->user->username }}@if($video->user->is('Moderator')) <i class="fa fa-bolt"></i>@endif</a></i>  {{ $video->created_at->diffForHumans() }}@if(auth()->check() && auth()->user()->can('delete_video')) <a data-confirm="Do you really want to delete this video?" class="btn btn-danger" href="{{url($video->id . '/delete')}}">Delete</a>@endif</span>
|
||||
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('aside')
|
||||
@include('partials.comments')
|
||||
@endsection
|
Reference in New Issue
Block a user