Fix 'more...' links on the homepage
This commit is contained in:
parent
187c3b8e87
commit
4f6ae4c539
3 changed files with 67 additions and 5 deletions
|
|
@ -81,8 +81,11 @@ sub home {
|
||||||
b $sys->[0]{name};
|
b $sys->[0]{name};
|
||||||
if(@$sys > 1) {
|
if(@$sys > 1) {
|
||||||
my $i = 0;
|
my $i = 0;
|
||||||
a href => "/browse/$_->{short}", ++$i > 3 ? (class => "old") : (), $_->{release} for(reverse @$sys);
|
for(reverse @$sys) {
|
||||||
a href => "#", 'more...' if $i > 3;
|
a href => "/browse/$_->{short}", ++$i > 3 ? (class => 'hidden') : (), $_->{release};
|
||||||
|
lit ' ';
|
||||||
|
}
|
||||||
|
a href => "#", class => 'more', 'more...' if $i > 3;
|
||||||
}
|
}
|
||||||
end 'a' if @$sys == 1;
|
end 'a' if @$sys == 1;
|
||||||
end;
|
end;
|
||||||
|
|
|
||||||
|
|
@ -50,10 +50,10 @@ td { padding: 1px 5px; font-size: 12px; border-left: 1px solid #ccc; }
|
||||||
#nav b { font-family: "Verdana"; font-size: 13px; background: #cde; padding: 3px 5px;
|
#nav b { font-family: "Verdana"; font-size: 13px; background: #cde; padding: 3px 5px;
|
||||||
-webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; }
|
-webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; }
|
||||||
|
|
||||||
#systems li { display: block; float: left; width: 360px; margin: 20px; }
|
#systems li { display: block; float: left; width: 360px; margin: 20px 20px 0 20px; }
|
||||||
#systems span { display: block; float: left; width: 50px; height: 50px; margin: 5px; background-repeat: no-repeat; }
|
#systems span { display: block; float: left; width: 50px; height: 50px; margin: 5px 5px 25px 5px; background-repeat: no-repeat; }
|
||||||
#systems b { font-size: 24px; display: block; }
|
#systems b { font-size: 24px; display: block; }
|
||||||
#systems .old { display: none; }
|
#systems .hidden { display: none; }
|
||||||
|
|
||||||
#external { list-style-type: none }
|
#external { list-style-type: none }
|
||||||
|
|
||||||
|
|
|
||||||
59
www/man.js
59
www/man.js
|
|
@ -6,6 +6,22 @@ var collapsed_icon = '▸';
|
||||||
function byId(n) {
|
function byId(n) {
|
||||||
return document.getElementById(n)
|
return document.getElementById(n)
|
||||||
}
|
}
|
||||||
|
function byName(){
|
||||||
|
var d = arguments.length > 1 ? arguments[0] : document;
|
||||||
|
var n = arguments.length > 1 ? arguments[1] : arguments[0];
|
||||||
|
return d.getElementsByTagName(n);
|
||||||
|
}
|
||||||
|
function byClass() { // [class], [parent, class], [tagname, class], [parent, tagname, class]
|
||||||
|
var par = typeof arguments[0] == 'object' ? arguments[0] : document;
|
||||||
|
var t = arguments.length == 2 && typeof arguments[0] == 'string' ? arguments[0] : arguments.length == 3 ? arguments[1] : '*';
|
||||||
|
var c = arguments[arguments.length-1];
|
||||||
|
var l = byName(par, t);
|
||||||
|
var ret = [];
|
||||||
|
for(var i=0; i<l.length; i++)
|
||||||
|
if(hasClass(l[i], c))
|
||||||
|
ret[ret.length] = l[i];
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* wrapper around DOM element creation
|
/* wrapper around DOM element creation
|
||||||
* tag('string') -> createTextNode
|
* tag('string') -> createTextNode
|
||||||
|
|
@ -40,6 +56,34 @@ function setText(obj, txt) {
|
||||||
obj.innerText = txt;
|
obj.innerText = txt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function listClass(obj) {
|
||||||
|
var n = obj.className;
|
||||||
|
if(!n)
|
||||||
|
return [];
|
||||||
|
return n.split(/ /);
|
||||||
|
}
|
||||||
|
function hasClass(obj, c) {
|
||||||
|
var l = listClass(obj);
|
||||||
|
for(var i=0; i<l.length; i++)
|
||||||
|
if(l[i] == c)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
function setClass(obj, c, set) {
|
||||||
|
var l = listClass(obj);
|
||||||
|
var n = [];
|
||||||
|
if(set) {
|
||||||
|
n = l;
|
||||||
|
if(!hasClass(obj, c))
|
||||||
|
n[n.length] = c;
|
||||||
|
} else {
|
||||||
|
for(var i=0; i<l.length; i++)
|
||||||
|
if(l[i] != c)
|
||||||
|
n[n.length] = l[i];
|
||||||
|
}
|
||||||
|
obj.className = n.join(' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* What follows is specific to manned.org */
|
/* What follows is specific to manned.org */
|
||||||
|
|
@ -152,3 +196,18 @@ function navCreateLinks(nav) {
|
||||||
if(byId('nav'))
|
if(byId('nav'))
|
||||||
navCreate(byId('nav'));
|
navCreate(byId('nav'));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// The "more..." links on the homepage.
|
||||||
|
if(byId('systems')) {
|
||||||
|
var f = function() {
|
||||||
|
var l = byName(this.parentNode, 'a', 'hidden');
|
||||||
|
for(var i=0; i<l.length; i++)
|
||||||
|
setClass(l[i], 'hidden', false);
|
||||||
|
setClass(this, 'hidden', true);
|
||||||
|
return false
|
||||||
|
};
|
||||||
|
var l = byClass(byId('systems'), 'a', 'more');
|
||||||
|
for(var i=0; i<l.length; i++)
|
||||||
|
l[i].onclick = f;
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue