Merge branch 'master' of github.com:vichan-devel/Tinyboard

Conflicts:
	stylesheets/style.css
This commit is contained in:
czaks 2014-09-26 14:08:40 +02:00
commit b4b99cd936
10 changed files with 67 additions and 372 deletions

View File

@ -41,8 +41,8 @@ class Api {
); );
$this->fileFields = array( $this->fileFields = array(
'thumbheight' => 'tn_w', 'thumbheight' => 'tn_h',
'thumbwidth' => 'tn_h', 'thumbwidth' => 'tn_w',
'height' => 'w', 'height' => 'w',
'width' => 'h', 'width' => 'h',
'size' => 'fsize', 'size' => 'fsize',
@ -113,6 +113,7 @@ class Api {
$apiPost['ext'] = substr($file->file, $dotPos); $apiPost['ext'] = substr($file->file, $dotPos);
$dotPos = strrpos($file->file, '.'); $dotPos = strrpos($file->file, '.');
$apiPost['tim'] = substr($file->file, 0, $dotPos); $apiPost['tim'] = substr($file->file, 0, $dotPos);
$apiPost['md5'] = base64_encode(md5_file($file->file_path, true));
} }
return $apiPost; return $apiPost;

View File

@ -8,6 +8,7 @@
* Copyright (c) 2012 Michael Save <savetheinternet@tinyboard.org> * Copyright (c) 2012 Michael Save <savetheinternet@tinyboard.org>
* Copyright (c) 2013-2014 Marcin Łabanowski <marcin@6irc.net> * Copyright (c) 2013-2014 Marcin Łabanowski <marcin@6irc.net>
* Copyright (c) 2013 undido <firekid109@hotmail.com> * Copyright (c) 2013 undido <firekid109@hotmail.com>
* Copyright (c) 2014 Fredrick Brennan <admin@8chan.co>
* *
* Usage: * Usage:
* $config['additional_javascript'][] = 'js/jquery.min.js'; * $config['additional_javascript'][] = 'js/jquery.min.js';
@ -27,6 +28,8 @@ $(document).ready(function(){
var poll_interval; var poll_interval;
// Add an update link
$('.boardlist.bottom').prev().after("<a href='#' id='update_thread' style='padding-left:10px'>["+_("Update thread")+"] (<span id='update_secs'></span>)</a>");
// Grab the settings // Grab the settings
var settings = new script_settings('auto-reload'); var settings = new script_settings('auto-reload');
@ -37,6 +40,7 @@ $(document).ready(function(){
// number of ms to wait before reloading // number of ms to wait before reloading
var poll_interval_delay = poll_interval_mindelay_bottom; var poll_interval_delay = poll_interval_mindelay_bottom;
var poll_current_time = poll_interval_delay;
var end_of_page = false; var end_of_page = false;
@ -68,6 +72,14 @@ $(document).ready(function(){
window_active = false; window_active = false;
}); });
var timer_update = function() {
$('#update_secs').text(poll_current_time/1000);
}
var decrement_timer = function() {
poll_current_time = poll_current_time - 1000;
}
var recheck_activated = function() { var recheck_activated = function() {
if (new_posts && window_active && if (new_posts && window_active &&
$(window).scrollTop() + $(window).height() >= $(window).scrollTop() + $(window).height() >=
@ -115,6 +127,9 @@ $(document).ready(function(){
} }
poll_interval = setTimeout(poll, poll_interval_delay); poll_interval = setTimeout(poll, poll_interval_delay);
poll_current_time = poll_interval_delay;
return false;
}; };
$(window).scroll(function() { $(window).scroll(function() {
@ -128,9 +143,15 @@ $(document).ready(function(){
clearTimeout(poll_interval); clearTimeout(poll_interval);
poll_interval = setTimeout(poll, poll_interval_shortdelay); poll_interval = setTimeout(poll, poll_interval_shortdelay);
poll_current_time = poll_interval_shortdelay;
end_of_page = true; end_of_page = true;
}).trigger('scroll'); }).trigger('scroll');
$('#update_thread').on('click', poll);
setInterval(timer_update, 1000);
setInterval(decrement_timer, 1000);
poll_interval = setTimeout(poll, poll_interval_delay); poll_interval = setTimeout(poll, poll_interval_delay);
timer_update();
}); });

View File

@ -16,11 +16,11 @@ function catalog() {
var board = $("input[name='board']"); var board = $("input[name='board']");
if (board.length>0) { if (board.length>0) {
if (window.location.href.indexOf("/res/")==-1){ //if we are inside a thread if (window.location.pathname.indexOf("/res/")>0){ //if we are inside a thread
var catalog_url = 'catalog.html'; var catalog_url = '../catalog.html';
} }
else { else {
var catalog_url = '../catalog.html'; var catalog_url = 'catalog.html';
} }
var pages = document.getElementsByClassName('pages')[0]; var pages = document.getElementsByClassName('pages')[0];
var bottom = document.getElementsByClassName('boardlist bottom')[0] var bottom = document.getElementsByClassName('boardlist bottom')[0]

View File

@ -13,7 +13,10 @@
*/ */
function unanimate_gif(e) { function unanimate_gif(e) {
var c = $('<canvas class="post-image"></canvas>'); if (active_page === "catalog")
var c = $('<canvas class="thread-image"></canvas>');
else
var c = $('<canvas class="post-image"></canvas>');
$(e).parent().prepend(c); $(e).parent().prepend(c);
c.attr('width', $(e).width()); c.attr('width', $(e).width());
c.attr('height',$(e).height()); c.attr('height',$(e).height());
@ -32,7 +35,7 @@ function unanimate_gif(e) {
} }
function no_animated_gif() { function no_animated_gif() {
var anim_gifs = $('img.post-image[src$=".gif"]'); var anim_gifs = $('img.post-image[src$=".gif"], img.thread-image[src$=".gif"]');
localStorage.no_animated_gif = true; localStorage.no_animated_gif = true;
$('#no-animated-gif>a').text(_('Animate GIFs')); $('#no-animated-gif>a').text(_('Animate GIFs'));
$('#no-animated-gif>input').prop('checked', true); $('#no-animated-gif>input').prop('checked', true);
@ -48,7 +51,7 @@ function animated_gif() {
$('#no-animated-gif>input').prop('checked', false); $('#no-animated-gif>input').prop('checked', false);
} }
if (active_page == 'thread' || active_page == 'index' || active_page == 'ukko') { if (active_page == 'thread' || active_page == 'index' || active_page == 'ukko' || active_page == 'catalog') {
$(function(){ $(function(){
var selector, event; var selector, event;
if (window.Options && Options.get_tab('general')) { if (window.Options && Options.get_tab('general')) {

View File

@ -58,8 +58,8 @@ onready(function(){
// link links to itself or to op; ignore // link links to itself or to op; ignore
} }
else if($post.is(':visible') && else if($post.is(':visible') &&
$post.offset().top + $post.height() >= $(window).scrollTop() && $post.offset().top >= $(window).scrollTop() &&
$post.offset().top <= $(window).scrollTop() + $(window).height()) { $post.offset().top + $post.height() <= $(window).scrollTop() + $(window).height()) {
// post is in view // post is in view
$post.addClass('highlighted'); $post.addClass('highlighted');
} else { } else {

View File

@ -15,7 +15,7 @@
$boards = listBoards(TRUE); $boards = listBoards(TRUE);
} }
$body = Element('search_form.html', Array('boards' => $boards, 'board' => isset($_GET['board']) ? $_GET['board'] : false, 'search' => isset($_GET['search']) ? str_replace('"', '&quot;', utf8tohtml($_GET['search'])) : false)); $body = Element('search_form.html', Array('boards' => $boards, 'b' => isset($_GET['board']) ? $_GET['board'] : false, 'search' => isset($_GET['search']) ? str_replace('"', '&quot;', utf8tohtml($_GET['search'])) : false));
if(isset($_GET['search']) && !empty($_GET['search']) && isset($_GET['board']) && in_array($_GET['board'], $boards)) { if(isset($_GET['search']) && !empty($_GET['search']) && isset($_GET['board']) && in_array($_GET['board'], $boards)) {
$phrase = $_GET['search']; $phrase = $_GET['search'];

View File

@ -1,75 +0,0 @@
img {
float:none!important;
margin: auto;
margin-bottom: 12px;
/*max-height: 150px;
max-width: 200px;*/
box-shadow: 0 0 4px rgba(0, 0, 0, 0.55);
border: 2px solid rgba(153, 153, 153, 0);
}
/*
img:hover {
border: 2px solid rgba(153, 153, 153, 0.27);
}
*/
div.threads{
text-align: center;
margin-left: -20px;
}
div.thread {
display: inline-block;
vertical-align: top;
margin-bottom:25px;
margin-left: 20px;
margin-right: 15px;
text-align:center;
font-weight:normal;
width:205px;
overflow:hidden;
position: relative;
font-size:11px;
padding: 15px;
background: rgba(182, 182, 182, 0.12);
border: 2px solid rgba(111, 111, 111, 0.34);
max-height:300px;
}
div.thread:hover {
background: #D6DAF0;
border-color: #B7C5D9;
}
div.grid-size-small {
width: 200px;
max-width: 200px;
max-height: 350px;
}
div.grid-size-large {
width: 300px;
max-width: 300px;
max-height: 450px;
}
img.thread-image {
height: auto;
max-width: 100%;
}
@media (max-width: 420px) {
ul#Grid {
padding-left: 18px;
}
div.thread {
width: auto;
margin-left: 0;
margin-right: 0;
}
div.threads {
overflow: hidden;
}
}

View File

@ -7,25 +7,33 @@ body {
padding-left: 5px; padding-left: 5px;
padding-right: 5px; padding-right: 5px;
} }
table * { table * {
margin: 0; margin: 0;
} }
a, a:visited { a, a:visited {
text-decoration: underline; text-decoration: underline;
color: #34345C; color: #34345C;
} }
a:hover, p.intro a.post_no:hover { a:hover, p.intro a.post_no:hover {
color: #ff0000; color: #ff0000;
} }
a.post_no { a.post_no {
text-decoration: none; text-decoration: none;
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
p.intro a.post_no { p.intro a.post_no {
color: inherit; color: inherit;
} }
p.intro a.post_no, p.intro a.email, p.intro a.post_anchor {
p.intro a.post_no,
p.intro a.email,
p.intro a.post_anchor {
margin: 0; margin: 0;
} }
p.intro a.email span.name { p.intro a.email span.name {
@ -214,7 +222,8 @@ div.post.reply div.body a {
color: #D00; color: #D00;
} }
div.post { div.post {
max-width: 97%; max-width: 95%;
padding-left:20px;
} }
div.post div.body { div.post div.body {
word-wrap: break-word; word-wrap: break-word;
@ -502,7 +511,6 @@ form.ban-appeal textarea {
.theme-catalog div.thread img { .theme-catalog div.thread img {
float:none!important; float:none!important;
margin: auto; margin: auto;
margin-bottom: 12px;
max-height: 150px; max-height: 150px;
max-width: 200px; max-width: 200px;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.55); box-shadow: 0 0 4px rgba(0, 0, 0, 0.55);
@ -511,9 +519,6 @@ form.ban-appeal textarea {
.theme-catalog div.thread { .theme-catalog div.thread {
display: inline-block; display: inline-block;
vertical-align: top; vertical-align: top;
margin-bottom:25px;
margin-left: 20px;
margin-right: 15px;
text-align:center; text-align:center;
font-weight:normal; font-weight:normal;
padding: 2px; padding: 2px;
@ -547,19 +552,19 @@ div.thread:hover {
width: 100px; width: 100px;
max-width: 100px; max-width: 100px;
max-height: 150px; max-height: 150px;
} }
.theme-catalog div.grid-size-small { .theme-catalog div.grid-size-small {
width: 200px; width: 200px;
max-width: 200px; max-width: 200px;
max-height: 350px; max-height: 350px;
} }
.theme-catalog div.grid-size-large { .theme-catalog div.grid-size-large {
width: 300px; width: 300px;
max-width: 300px; max-width: 300px;
max-height: 450px; max-height: 450px;
} }
.theme-catalog img.thread-image { .theme-catalog img.thread-image {
height: auto; height: auto;
@ -581,8 +586,6 @@ div.thread:hover {
} }
} }
@include url("tooltipster/tooltipster.css");
.compact-boardlist { .compact-boardlist {
padding: 3px; padding: 3px;
padding-bottom: 0; padding-bottom: 0;
@ -667,7 +670,7 @@ div.thread:hover {
background-color: #d6daf0; background-color: #d6daf0;
border: 1px solid black; border: 1px solid black;
display: inline-block; display: inline-block;
position: relative; position: relative;
margin-top: 20px; margin-top: 20px;
width: 600px; width: 600px;
height: 300px; height: 300px;
@ -690,6 +693,7 @@ div.thread:hover {
.options_tab_icon { .options_tab_icon {
padding: 5px; padding: 5px;
color: black; color: black;
cursor: pointer;
} }
.options_tab_icon.active { .options_tab_icon.active {
color: red; color: red;
@ -719,3 +723,17 @@ div.thread:hover {
height: 100%; height: 100%;
margin-top: 0px; margin-top: 0px;
} }
.mentioned {
word-wrap: break-word;
}
code > pre {
/* Better code tags */
background:black;
max-width:inherit;
}
code > pre > span.pln {
color:grey;
}

View File

@ -1,274 +0,0 @@
/* This is the default Tooltipster theme (feel free to modify or duplicate and create multiple themes!): */
.tooltipster-default {
border-radius: 5px;
border: 2px solid #000;
background: #4c4c4c;
color: #fff;
}
/* Use this next selector to style things like font-size and line-height: */
.tooltipster-default .tooltipster-content {
font-family: Arial, sans-serif;
font-size: 14px;
line-height: 16px;
padding: 8px 10px;
overflow: hidden;
}
/* This next selector defines the color of the border on the outside of the arrow. This will automatically match the color and size of the border set on the main tooltip styles. Set display: none; if you would like a border around the tooltip but no border around the arrow */
.tooltipster-default .tooltipster-arrow .tooltipster-arrow-border {
/* border-color: ... !important; */
}
/* If you're using the icon option, use this next selector to style them */
.tooltipster-icon {
cursor: help;
margin-left: 4px;
}
/* This is the base styling required to make all Tooltipsters work */
.tooltipster-base {
padding: 0;
font-size: 0;
line-height: 0;
position: absolute;
left: 0;
top: 0;
z-index: 9999999;
pointer-events: none;
width: auto;
overflow: visible;
}
.tooltipster-base .tooltipster-content {
overflow: hidden;
}
/* These next classes handle the styles for the little arrow attached to the tooltip. By default, the arrow will inherit the same colors and border as what is set on the main tooltip itself. */
.tooltipster-arrow {
display: block;
text-align: center;
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: -1;
}
.tooltipster-arrow span, .tooltipster-arrow-border {
display: block;
width: 0;
height: 0;
position: absolute;
}
.tooltipster-arrow-top span, .tooltipster-arrow-top-right span, .tooltipster-arrow-top-left span {
border-left: 8px solid transparent !important;
border-right: 8px solid transparent !important;
border-top: 8px solid;
bottom: -7px;
}
.tooltipster-arrow-top .tooltipster-arrow-border, .tooltipster-arrow-top-right .tooltipster-arrow-border, .tooltipster-arrow-top-left .tooltipster-arrow-border {
border-left: 9px solid transparent !important;
border-right: 9px solid transparent !important;
border-top: 9px solid;
bottom: -7px;
}
.tooltipster-arrow-bottom span, .tooltipster-arrow-bottom-right span, .tooltipster-arrow-bottom-left span {
border-left: 8px solid transparent !important;
border-right: 8px solid transparent !important;
border-bottom: 8px solid;
top: -7px;
}
.tooltipster-arrow-bottom .tooltipster-arrow-border, .tooltipster-arrow-bottom-right .tooltipster-arrow-border, .tooltipster-arrow-bottom-left .tooltipster-arrow-border {
border-left: 9px solid transparent !important;
border-right: 9px solid transparent !important;
border-bottom: 9px solid;
top: -7px;
}
.tooltipster-arrow-top span, .tooltipster-arrow-top .tooltipster-arrow-border, .tooltipster-arrow-bottom span, .tooltipster-arrow-bottom .tooltipster-arrow-border {
left: 0;
right: 0;
margin: 0 auto;
}
.tooltipster-arrow-top-left span, .tooltipster-arrow-bottom-left span {
left: 6px;
}
.tooltipster-arrow-top-left .tooltipster-arrow-border, .tooltipster-arrow-bottom-left .tooltipster-arrow-border {
left: 5px;
}
.tooltipster-arrow-top-right span, .tooltipster-arrow-bottom-right span {
right: 6px;
}
.tooltipster-arrow-top-right .tooltipster-arrow-border, .tooltipster-arrow-bottom-right .tooltipster-arrow-border {
right: 5px;
}
.tooltipster-arrow-left span, .tooltipster-arrow-left .tooltipster-arrow-border {
border-top: 8px solid transparent !important;
border-bottom: 8px solid transparent !important;
border-left: 8px solid;
top: 50%;
margin-top: -7px;
right: -7px;
}
.tooltipster-arrow-left .tooltipster-arrow-border {
border-top: 9px solid transparent !important;
border-bottom: 9px solid transparent !important;
border-left: 9px solid;
margin-top: -8px;
}
.tooltipster-arrow-right span, .tooltipster-arrow-right .tooltipster-arrow-border {
border-top: 8px solid transparent !important;
border-bottom: 8px solid transparent !important;
border-right: 8px solid;
top: 50%;
margin-top: -7px;
left: -7px;
}
.tooltipster-arrow-right .tooltipster-arrow-border {
border-top: 9px solid transparent !important;
border-bottom: 9px solid transparent !important;
border-right: 9px solid;
margin-top: -8px;
}
/* Some CSS magic for the awesome animations - feel free to make your own custom animations and reference it in your Tooltipster settings! */
.tooltipster-fade {
opacity: 0;
-webkit-transition-property: opacity;
-moz-transition-property: opacity;
-o-transition-property: opacity;
-ms-transition-property: opacity;
transition-property: opacity;
}
.tooltipster-fade-show {
opacity: 1;
}
.tooltipster-grow {
-webkit-transform: scale(0,0);
-moz-transform: scale(0,0);
-o-transform: scale(0,0);
-ms-transform: scale(0,0);
transform: scale(0,0);
-webkit-transition-property: -webkit-transform;
-moz-transition-property: -moz-transform;
-o-transition-property: -o-transform;
-ms-transition-property: -ms-transform;
transition-property: transform;
-webkit-backface-visibility: hidden;
}
.tooltipster-grow-show {
-webkit-transform: scale(1,1);
-moz-transform: scale(1,1);
-o-transform: scale(1,1);
-ms-transform: scale(1,1);
transform: scale(1,1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
}
.tooltipster-swing {
opacity: 0;
-webkit-transform: rotateZ(4deg);
-moz-transform: rotateZ(4deg);
-o-transform: rotateZ(4deg);
-ms-transform: rotateZ(4deg);
transform: rotateZ(4deg);
-webkit-transition-property: -webkit-transform, opacity;
-moz-transition-property: -moz-transform;
-o-transition-property: -o-transform;
-ms-transition-property: -ms-transform;
transition-property: transform;
}
.tooltipster-swing-show {
opacity: 1;
-webkit-transform: rotateZ(0deg);
-moz-transform: rotateZ(0deg);
-o-transform: rotateZ(0deg);
-ms-transform: rotateZ(0deg);
transform: rotateZ(0deg);
-webkit-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 1);
-webkit-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
-moz-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
-ms-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
-o-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
}
.tooltipster-fall {
top: 0;
-webkit-transition-property: top;
-moz-transition-property: top;
-o-transition-property: top;
-ms-transition-property: top;
transition-property: top;
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
}
.tooltipster-fall-show {
}
.tooltipster-fall.tooltipster-dying {
-webkit-transition-property: all;
-moz-transition-property: all;
-o-transition-property: all;
-ms-transition-property: all;
transition-property: all;
top: 0px !important;
opacity: 0;
}
.tooltipster-slide {
left: -40px;
-webkit-transition-property: left;
-moz-transition-property: left;
-o-transition-property: left;
-ms-transition-property: left;
transition-property: left;
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
}
.tooltipster-slide.tooltipster-slide-show {
}
.tooltipster-slide.tooltipster-dying {
-webkit-transition-property: all;
-moz-transition-property: all;
-o-transition-property: all;
-ms-transition-property: all;
transition-property: all;
left: 0px !important;
opacity: 0;
}
/* CSS transition for when contenting is changing in a tooltip that is still open. The only properties that will NOT transition are: width, height, top, and left */
.tooltipster-content-changing {
opacity: 0.5;
-webkit-transform: scale(1.1, 1.1);
-moz-transform: scale(1.1, 1.1);
-o-transform: scale(1.1, 1.1);
-ms-transform: scale(1.1, 1.1);
transform: scale(1.1, 1.1);
}

View File

@ -154,6 +154,7 @@ function highlightReply(id) {
var post = document.getElementById('reply_'+id); var post = document.getElementById('reply_'+id);
if (post) if (post)
post.className += ' highlighted'; post.className += ' highlighted';
window.location.hash = id;
} }
return true; return true;
} }