Minor tf.tv layout configurator
/*
tftvfl
Minor tf.tv layout configurator
Copyright 2013 Alexander "Wareya" Nadeau <[email protected]>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software and/or its source
code for any purpose, including commercial applications, and to alter
it and/or distribute it freely, subject to the following conditions:
1. The origin of the software must not be misrepresented.
1a. Modified versions of the software or its source code must
not be misrepesented as the original version.
1b. Acknowledgment of use or modification of the software
or its source code is appreciated but not required.
2. This notice may not be removed from, or altered in, any source
distribution of the software.
2a. This notice is not required to be included in any compiled
distribution of the software, as long as said distribution
does not constitute a source distribution.
*/
// ==UserScript==
// @name tftvfl
// @version 0.03
// @namespace wareya
// @description Minor tf.tv layout configurator
// @include http://teamfortress.tv/*
// @grant GM_addStyle
// ==/UserScript==
/* change these values between true or false to enable/disable individual features of the plugin */
// whether the sidebar is toggle-able off of the main page
var togglebar_enabled = true;
// whether the global "Threads" link is enabled
//var globalallthreads_enabled = true;//built-in to tftv now
// whether to move a given left bar entry to the right bar
var move_news = false;
var move_schedule = false;
var move_activity = true;
/* bulk of the script (don't modify this unless you know what you're doing */
// helper function (why javascript why don't NodeLists act like arrays)
function map(nodes, func)
{
for (var i = 0; i < nodes.length; ++i)
func(nodes[i]);
}
function setopenspan(firstrun)
{
localStorage.setItem("tftvbar/closed", "false");
var barstuff = document.getElementById("col-left");
var colstuff = document.getElementById("col-center");
colstuff.style.marginLeft = "0";
colstuff.style.width = "100%";
barstuff.style.display = "";
if(document.getElementById("closer") != null)
document.getElementById("closer").parentNode.removeChild(document.getElementById("closer"));
// make temp element to get things from it
var content = document.getElementById("content");
content.innerHTML = "\
\<span id='closer' onclick='setclosedspan(0);' style='font-family:arial; float:right; position: absolute; top: 5px; left: 20px; z-index: 2;'>\
[<]\
</span>"
+ content.innerHTML;
document.getElementById("article-list").style.width = "219px";
if(!firstrun)
document.styleSheets[0].deleteRule(0);
document.styleSheets[0].insertRule('.article-item { width: 166px !important; }', 0);
}
function setclosedspan(firstrun)
{
localStorage.setItem("tftvbar/closed", "true");
var barstuff = document.getElementById("col-left");
var colstuff = document.getElementById("col-center");
colstuff.style.marginLeft = "-185px";
colstuff.style.width = "947px";
barstuff.style.display = "none";
if(document.getElementById("closer") != null)
document.getElementById("closer").parentNode.removeChild(document.getElementById("closer"));
// make temp element to get things from it
var content = document.getElementById("content");
content.innerHTML = "\
\<span id='closer' onclick='setopenspan(0);' style='font-family:arial; float:right; position: absolute; top: 5px; left: 20px; z-index: 2;'>\
[>]\
</span>"
+ content.innerHTML;
document.getElementById("article-list").style.width = "341px";
if(!firstrun)
document.styleSheets[0].deleteRule(0);
document.styleSheets[0].insertRule('.article-item { width: 288px !important; }', 0);
}
if(togglebar_enabled)
{
var script = document.body.appendChild(document.createElement("script"));
script.type = "text/javascript";
script.id = "userscript funcs / wareya";
script.innerHTML = map.toString() + setopenspan.toString() + "\n" + setclosedspan.toString() + "\n" + "\n";
if (localStorage.getItem("tftvbar/closed") != "true")
setopenspan(1);
else
setclosedspan(1);
}
/*
if(globalallthreads_enabled)
{
// "nav" center <nav> Forums
document.getElementById("nav").children[0].children[0].children[1].outerHTML += '\
<div class="nav-item-wrapper distinct noselect">\
<a href="/active" class="bbox nav-item ">\
All Threads\
</a>\
</div>';
}*/
// In reverse order so that appending is trivial
if(move_activity)
{
document.getElementById("col-left").children[2].style.marginTop = "4px";
document.getElementById("col-right").children[1].outerHTML +=
document.getElementById("col-left").children[2].outerHTML;
document.getElementById("col-left").children[2].outerHTML = "";
}
if(move_schedule)
{
document.getElementById("col-left").children[1].style.marginTop = "4px";
document.getElementById("col-right").children[1].outerHTML +=
document.getElementById("col-left").children[1].outerHTML;
document.getElementById("col-left").children[1].outerHTML = "";
}
if(move_news)
{
document.getElementById("col-left").children[0].style.marginTop = "4px";
document.getElementById("col-right").children[1].outerHTML +=
document.getElementById("col-left").children[0].outerHTML;
document.getElementById("col-left").children[0].outerHTML = "";
}