From 2d6d449bd2d720241b5774f403d08167bfa25e7c Mon Sep 17 00:00:00 2001
From: unknown <8n-tech@users.noreply.github.com>
Date: Sat, 18 Oct 2014 20:07:04 -0500
Subject: [PATCH] [#184] Added
tag classes. Style selector now adds a
class. Moved board list under moderator dashboard.
---
d | 553 ++++++++++++++++++++++++++++++
inc/instance-config.php | 14 +-
inc/mod/pages.php | 210 ++++++++----
install.php | 32 +-
stylesheets/style.css | 2 +-
templates/8chan/index.html | 2 +-
templates/generic_page.html | 2 +-
templates/index.html | 2 +-
templates/main.js | 100 ++++--
templates/mod/dashboard.html | 170 ++++-----
templates/mod/report.html | 42 +--
templates/mod/reports.html | 4 +-
templates/page.html | 3 +-
templates/post_thread.html | 2 +-
templates/themes/basic/index.html | 2 +-
templates/thread.html | 2 +-
16 files changed, 915 insertions(+), 227 deletions(-)
create mode 100644 d
diff --git a/d b/d
new file mode 100644
index 00000000..09ddbcc5
--- /dev/null
+++ b/d
@@ -0,0 +1,553 @@
+[1mdiff --git a/inc/instance-config.php b/inc/instance-config.php[m
+[1mindex 699d1a1..475f3ed 100644[m
+[1m--- a/inc/instance-config.php[m
+[1m+++ b/inc/instance-config.php[m
+[36m@@ -18,15 +18,15 @@[m
+ $config['db']['user'] = 'root';[m
+ $config['db']['password'] = '';[m
+ $config['timezone'] = 'UTC';[m
+[31m- $config['cache']['enabled'] = 'apc';[m
+[31m-[m
+[31m-[m
+[32m+[m [32m$config['cache']['enabled'] = false;[m
+[32m+[m[41m [m
+[32m+[m[41m [m
+ $config['cookies']['mod'] = 'mod';[m
+ $config['cookies']['salt'] = '';[m
+[31m-[m
+[32m+[m[41m [m
+ $config['spam']['hidden_inputs_max_pass'] = 128;[m
+ $config['spam']['hidden_inputs_expire'] = 60 * 60 * 4; // three hours[m
+[31m-[m
+[32m+[m[41m [m
+ $config['flood_time'] = 5;[m
+ $config['flood_time_ip'] = 30;[m
+ $config['flood_time_same'] = 2;[m
+[36m@@ -46,10 +46,10 @@[m
+ $config['thread_subject_in_title'] = true;[m
+ $config['spam']['hidden_inputs_max_pass'] = 128;[m
+ $config['ayah_enabled'] = true;[m
+[31m-[m
+[32m+[m[41m [m
+ // Load database credentials[m
+ require "secrets.php";[m
+[31m-[m
+[32m+[m[41m [m
+ // Image shit[m
+ $config['thumb_method'] = 'gm+gifsicle';[m
+ $config['thumb_ext'] = '';[m
+[1mdiff --git a/install.php b/install.php[m
+[1mindex 8b3815a..07e94e7 100644[m
+[1m--- a/install.php[m
+[1m+++ b/install.php[m
+[36m@@ -579,7 +579,8 @@[m [mif ($step == 0) {[m
+ ';[m
+ [m
+ echo Element('page.html', $page);[m
+[31m-} elseif ($step == 1) {[m
+[32m+[m[32m}[m
+[32m+[m[32melseif ($step == 1) {[m
+ $page['title'] = 'Pre-installation test';[m
+ [m
+ $can_exec = true;[m
+[36m@@ -761,7 +762,8 @@[m [mif ($step == 0) {[m
+ 'title' => 'Checking environment',[m
+ 'config' => $config[m
+ ));[m
+[31m-} elseif ($step == 2) {[m
+[32m+[m[32m}[m
+[32m+[m[32melseif ($step == 2) {[m
+ // Basic config[m
+ $page['title'] = 'Configuration';[m
+ [m
+[36m@@ -775,7 +777,8 @@[m [mif ($step == 0) {[m
+ 'title' => 'Configuration',[m
+ 'config' => $config[m
+ ));[m
+[31m-} elseif ($step == 3) {[m
+[32m+[m[32m}[m
+[32m+[m[32melseif ($step == 3) {[m
+ $instance_config = [m
+ 'I couldn\'t write to Thank you for using vichan. Please remember to report any bugs you discover.
';[m
+ [m
+[1mdiff --git a/templates/8chan/index.html b/templates/8chan/index.html[m
+[1mindex 459e7e8..4f25473 100644[m
+[1m--- a/templates/8chan/index.html[m
+[1m+++ b/templates/8chan/index.html[m
+[36m@@ -223,7 +223,7 @@[m
+ [m
+ [m
+ [m
+[31m- [m
+[32m+[m[32m [m
+ [m
+ [m
+ [m
+[1mdiff --git a/templates/generic_page.html b/templates/generic_page.html[m
+[1mindex 0fe1f9c..4cd3116 100644[m
+[1m--- a/templates/generic_page.html[m
+[1m+++ b/templates/generic_page.html[m
+[36m@@ -6,7 +6,7 @@[m
+
{{ board.url }} - {{ board.name }} [m
+ {% endblock %}[m
+ [m
+[31m- [m
+[32m+[m[32m[m
+ {{ boardlist.top }}[m
+ {% if pm %}
You have
an unread PM {% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.
{% endif %}[m
+ {% if config.url_banner %}
{% endif %}[m
+[1mdiff --git a/templates/index.html b/templates/index.html[m
+[1mindex aae87c1..5638fd6 100644[m
+[1m--- a/templates/index.html[m
+[1m+++ b/templates/index.html[m
+[36m@@ -14,7 +14,7 @@[m
+ {% include 'header.html' %}[m
+
{{ board.url }} - {{ board.title|e }} [m
+ [m
+[31m- [m
+[32m+[m[32m[m
+ {{ boardlist.top }}[m
+ [m
+ {% if pm %}
You have
an unread PM {% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.
{% endif %}[m
+[1mdiff --git a/templates/main.js b/templates/main.js[m
+[1mindex 1ec4d26..d100f93 100644[m
+[1m--- a/templates/main.js[m
+[1m+++ b/templates/main.js[m
+[36m@@ -73,11 +73,6 @@[m [mvar saved = {};[m
+ [m
+ [m
+ var selectedstyle = '{% endraw %}{{ config.default_stylesheet.0|addslashes }}{% raw %}';[m
+[31m-/*var styles = {[m
+[31m- {% endraw %}[m
+[31m- {% for stylesheet in stylesheets %}{% raw %}'{% endraw %}{{ stylesheet.name|addslashes }}{% raw %}' : '{% endraw %}{{ stylesheet.uri|addslashes }}{% raw %}',[m
+[31m- {% endraw %}{% endfor %}{% raw %}[m
+[31m-};*/[m
+ var board_name = false;[m
+ [m
+ function changeStyle(styleName, link) {[m
+[36m@@ -92,36 +87,78 @@[m [mfunction changeStyle(styleName, link) {[m
+ {% endif %}[m
+ {% raw %}[m
+ [m
+[31m- if (!document.getElementById('stylesheet')) {[m
+[31m- var s = document.createElement('link');[m
+[31m- s.rel = 'stylesheet';[m
+[31m- s.type = 'text/css';[m
+[31m- s.id = 'stylesheet';[m
+[32m+[m [32m// Find the
for the stylesheet. May be nothing.[m
+[32m+[m [32mvar domStylesheet = document.getElementById('stylesheet');[m
+[32m+[m [32m// Determine if this stylesheet is the default.[m
+[32m+[m [32mvar setToDefault = ( styles[styleName] == "" || styles[styleName] == "/stylesheets/" );[m
+[32m+[m [32m// Turn "Yotsuba B" to "yotsuba_b"[m[41m [m
+[32m+[m [32mvar attributeName = styleName.replace(/[^a-z0-9_\-]/gi, '_').toLowerCase();[m
+[32m+[m[41m [m
+[32m+[m [32mif( !domStylesheet && !setToDefault ) {[m
+[32m+[m [32mdomStylesheet = document.createElement('link');[m
+[32m+[m [32mdomStylesheet.rel = 'stylesheet';[m
+[32m+[m [32mdomStylesheet.type = 'text/css';[m
+[32m+[m [32mdomStylesheet.id = 'stylesheet';[m
+[32m+[m[41m [m
+ var x = document.getElementsByTagName('head')[0];[m
+[31m- x.appendChild(s);[m
+[32m+[m [32mx.appendChild(domStylesheet);[m
+ }[m
+[31m-[m
+[31m- {% endraw %}[m
+[31m- var root = "{{ config.root }}";[m
+[31m- {% raw %}[m
+[31m- root = root.replace(/\/$/, "");[m
+[31m- [m
+[31m- document.getElementById('stylesheet').href = root + styles[styleName];[m
+[31m- selectedstyle = styleName;[m
+ [m
+[31m- if (document.getElementsByClassName('styles').length != 0) {[m
+[31m- var styleLinks = document.getElementsByClassName('styles')[0].childNodes;[m
+[31m- for (var i = 0; i < styleLinks.length; i++) {[m
+[31m- styleLinks[i].className = '';[m
+[32m+[m [32mif( !setToDefault ) {[m
+[32m+[m [32m{% endraw %}[m
+[32m+[m [32mvar root = "{{ config.root }}";[m
+[32m+[m [32m{% raw %}[m
+[32m+[m [32mroot = root.replace(/\/$/, "");[m
+[32m+[m[41m [m
+[32m+[m [32mdomStylesheet.href = root + styles[styleName];[m
+[32m+[m [32mselectedstyle = styleName;[m
+[32m+[m[41m [m
+[32m+[m [32mif (document.getElementsByClassName('styles').length != 0) {[m
+[32m+[m [32mvar styleLinks = document.getElementsByClassName('styles')[0].childNodes;[m
+[32m+[m [32mfor (var i = 0; i < styleLinks.length; i++) {[m
+[32m+[m [32mstyleLinks[i].className = '';[m
+[32m+[m [32m}[m
+ }[m
+[32m+[m[41m [m
+[32m+[m [32mif (link) {[m
+[32m+[m [32mlink.className = 'selected';[m
+[32m+[m [32m}[m
+[32m+[m [32m}[m
+[32m+[m [32melse if( domStylesheet ) {[m
+[32m+[m [32mdomStylesheet.parentNode.removeChild( domStylesheet );[m
+ }[m
+ [m
+[31m- if (link) {[m
+[31m- link.className = 'selected';[m
+[32m+[m [32m// Fix the classes on the body tag.[m
+[32m+[m [32mvar body = document.getElementsByTagName('body')[0];[m
+[32m+[m[41m [m
+[32m+[m [32mif( body ) {[m
+[32m+[m [32mvar bodyClasses = document.getElementsByTagName('body')[0].getAttribute('class').split(" ");[m
+[32m+[m [32mvar bodyClassesNew = [];[m
+[32m+[m[41m [m
+[32m+[m [32mfor( i = 0; i < bodyClasses.length; ++i ) {[m
+[32m+[m [32mvar bodyClass = bodyClasses[ i ];[m
+[32m+[m[41m [m
+[32m+[m [32m// null class from a double-space.[m
+[32m+[m [32mif( bodyClass == "" ) {[m
+[32m+[m [32mcontinue;[m
+[32m+[m [32m}[m
+[32m+[m[41m [m
+[32m+[m [32mif( bodyClass.indexOf( "stylesheet-" ) == 0 ) {[m
+[32m+[m [32mcontinue;[m
+[32m+[m [32m}[m
+[32m+[m[41m [m
+[32m+[m [32mbodyClassesNew.push( bodyClass );[m
+[32m+[m [32m}[m
+[32m+[m[41m [m
+[32m+[m [32m// Add stylesheet-yotsuba_b at the end.[m
+[32m+[m [32mbodyClassesNew.push( "stylesheet-" + attributeName );[m
+[32m+[m [32mbody.setAttribute( 'class', bodyClassesNew.join(" ") );[m
+[32m+[m [32mbody.setAttribute( 'data-stylesheet', attributeName );[m
+ }[m
+ [m
+[31m- if (typeof $ != 'undefined')[m
+[32m+[m [32mif (typeof $ != 'undefined') {[m
+ $(window).trigger('stylesheet', styleName);[m
+[32m+[m [32m}[m
+ }[m
+ [m
+ [m
+[36m@@ -167,7 +204,7 @@[m [mfunction init_stylechooser() {[m
+ }[m
+ }[m
+ }[m
+[31m- {% endraw%}[m
+[32m+[m [32m{% endraw %}[m
+ {% else %}[m
+ {% raw %}[m
+ if (localStorage.stylesheet) {[m
+[36m@@ -185,10 +222,13 @@[m [mfunction init_stylechooser() {[m
+ [m
+ function get_cookie(cookie_name) {[m
+ var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)');[m
+[31m- if (results)[m
+[32m+[m[41m [m
+[32m+[m [32mif (results) {[m
+ return (unescape(results[2]));[m
+[31m- else[m
+[32m+[m [32m}[m
+[32m+[m [32melse {[m
+ return null;[m
+[32m+[m [32m}[m
+ }[m
+ [m
+ function highlightReply(id) {[m
+[1mdiff --git a/templates/mod/dashboard.html b/templates/mod/dashboard.html[m
+[1mindex 4f76625..87e67c8 100644[m
+[1m--- a/templates/mod/dashboard.html[m
+[1m+++ b/templates/mod/dashboard.html[m
+[36m@@ -1,40 +1,5 @@[m
+[31m-[m
+[31m- {% trans 'Boards' %} [m
+[31m- [m
+[31m- [m
+[31m- {% for board in boards %}[m
+[31m- {% if board.uri in mod.boards or mod.boards[0] == '*' %}[m
+[31m- [m
+[31m- {{ config.board_abbreviation|sprintf(board.uri) }} [m
+[31m- - [m
+[31m- {{ board.title|e }}[m
+[31m- {% if board.subtitle %}[m
+[31m- — [m
+[31m- {% if config.allow_subtitle_html %}[m
+[31m- {{ board.subtitle }}[m
+[31m- {% else %}[m
+[31m- {{ board.subtitle|e }}[m
+[31m- {% endif %}[m
+[31m- [m
+[31m-[m
+[31m- {% endif %}[m
+[31m- {% if mod.type == "20" %}[m
+[31m- [{% trans 'settings' %}] [m
+[31m- {% endif %}[m
+[31m- {% if mod|hasPermission(config.mod.manageboards) %}[m
+[31m- [{% trans 'edit' %}] [m
+[31m- {% endif %}[m
+[31m- [m
+[31m- {% endif %}[m
+[31m- {% endfor %}[m
+[31m- [m
+[31m- {% if mod|hasPermission(config.mod.newboard) %}[m
+[31m- {% trans 'Create new board' %} [m
+[31m- {% endif %}[m
+[31m- [m
+[31m- [m
+[31m-[m
+[31m-[m
+[32m+[m[32m[m
+[32m+[m[32m[m
+ {% trans 'Messages' %} [m
+ [m
+ {% if mod|hasPermission(config.mod.noticeboard) %}[m
+[36m@@ -78,7 +43,8 @@[m
+ [m
+ [m
+ [m
+[31m-[m
+[32m+[m[32m[m
+[32m+[m[32m[m
+ {% trans 'Administration' %} [m
+ [m
+ [m
+[36m@@ -123,57 +89,99 @@[m
+ [m
+ [m
+ [m
+[32m+[m[32m[m
+ {% if mod|hasPermission(config.mod.search) %}[m
+[31m- [m
+[31m- {% trans 'Search' %} [m
+[31m- [m
+[31m- [m
+[32m+[m[32m[m
+[32m+[m [32m{% trans 'Search' %} [m
+[32m+[m[41m [m
+[32m+[m [32m[m
+[32m+[m [32m[m
+[32m+[m [32m{% include 'mod/search_form.html' %}[m
+[32m+[m [32m [m
+[32m+[m [32m [m
+[32m+[m[32m [m
+[32m+[m[32m{% endif %}[m
+[32m+[m
+[32m+[m[32m[m
+[32m+[m[32m[m
+[32m+[m [32m{% trans 'Boards' %} [m
+[32m+[m[41m [m
+[32m+[m [32m[m
+[32m+[m [32m{% for board in boards %}[m
+[32m+[m [32m{% if board.uri in mod.boards or mod.boards[0] == '*' %}[m
+ [m
+[31m- {% include 'mod/search_form.html' %}[m
+[32m+[m [32m{{ config.board_abbreviation|sprintf(board.uri) }} [m
+[32m+[m [32m -[m[41m [m
+[32m+[m [32m{{ board.title|e }}[m
+[32m+[m [32m{% if board.subtitle %}[m
+[32m+[m [32m—[m[41m [m
+[32m+[m [32m{% if config.allow_subtitle_html %}[m
+[32m+[m [32m{{ board.subtitle }}[m
+[32m+[m [32m{% else %}[m
+[32m+[m [32m{{ board.subtitle|e }}[m
+[32m+[m [32m{% endif %}[m
+[32m+[m [32m [m
+[32m+[m
+[32m+[m [32m{% endif %}[m
+[32m+[m [32m{% if mod.type == "20" %}[m
+[32m+[m [32m[{% trans 'settings' %}] [m
+[32m+[m [32m{% endif %}[m
+[32m+[m [32m{% if mod|hasPermission(config.mod.manageboards) %}[m
+[32m+[m [32m [{% trans 'edit' %}] [m
+[32m+[m [32m{% endif %}[m
+ [m
+[31m- [m
+[31m- [m
+[31m-{% endif %}[m
+[32m+[m [32m{% endif %}[m
+[32m+[m [32m{% endfor %}[m
+[32m+[m[41m [m
+[32m+[m [32m{% if mod|hasPermission(config.mod.newboard) %}[m
+[32m+[m [32m{% trans 'Create new board' %} [m
+[32m+[m [32m{% endif %}[m
+[32m+[m [32m [m
+[32m+[m[32m [m
+ [m
+[32m+[m[32m[m
+ {% if config.mod.dashboard_links|count %}[m
+[31m- [m
+[31m- {% trans 'Other' %} [m
+[31m- [m
+[31m- [m
+[31m- {% for label,link in config.mod.dashboard_links %}[m
+[31m- {{ label }} [m
+[31m- {% endfor %}[m
+[31m- [m
+[31m- [m
+[32m+[m[32m[m
+[32m+[m [32m{% trans 'Other' %} [m
+[32m+[m
+[32m+[m [32m[m
+[32m+[m [32m{% for label,link in config.mod.dashboard_links %}[m
+[32m+[m [32m{{ label }} [m
+[32m+[m [32m{% endfor %}[m
+[32m+[m [32m [m
+[32m+[m[32m [m
+ {% endif %}[m
+ [m
+[32m+[m[32m[m
+ {% if config.debug %}[m
+[31m- [m
+[31m- {% trans 'Debug' %} [m
+[31m- [m
+[31m- [m
+[32m+[m[32m[m
+[32m+[m [32m{% trans 'Debug' %} [m
+[32m+[m [32m[m
+[32m+[m[32m [m
+ {% endif %}[m
+ [m
+[32m+[m[32m[m
+ {% if newer_release %}[m
+[31m- [m
+[31m- Update [m
+[31m- [m
+[31m- [m
+[31m- A newer version of Tinyboard [m
+[31m- (v{{ newer_release.massive }}.{{ newer_release.major }}.{{ newer_release.minor }} ) is available! [m
+[31m- See http://tinyboard.org/ for upgrade instructions.[m
+[31m- [m
+[31m- [m
+[31m- [m
+[32m+[m[32m[m
+[32m+[m [32mUpdate [m
+[32m+[m [32m[m
+[32m+[m [32m[m
+[32m+[m [32mA newer version of Tinyboard[m[41m [m
+[32m+[m [32m(v{{ newer_release.massive }}.{{ newer_release.major }}.{{ newer_release.minor }} ) is available![m[41m [m
+[32m+[m [32mSee http://tinyboard.org/ for upgrade instructions.[m
+[32m+[m [32m [m
+[32m+[m [32m [m
+[32m+[m[32m [m
+ {% endif %}[m
+ [m
+[31m-[m
+[32m+[m[32m[m
+[32m+[m[32m[m
+ {% trans 'User account' %} [m
+ [m
+