diff options
author | Yorhel <git@yorhel.nl> | 2008-12-27 13:40:32 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2008-12-27 13:40:32 +0100 |
commit | 99645030d202d7af2edcfc22645d251cd52cac2a (patch) | |
tree | 9dd1d0237dc9d31c831c37cc8c8fe826dbbf19fa | |
parent | 6a490c8c2c7c60e5530ace67fb5e526575939849 (diff) |
Re-added the release list dropdown to VN pages
-rw-r--r-- | data/global.pl | 1 | ||||
-rw-r--r-- | data/skingen/style.css | 10 | ||||
-rw-r--r-- | lib/ChangeLog | 8 | ||||
-rw-r--r-- | lib/VNDB/Handler/ULists.pm | 3 | ||||
-rw-r--r-- | lib/VNDB/Handler/VNPage.pm | 6 | ||||
-rw-r--r-- | static/f/script.js | 72 |
6 files changed, 95 insertions, 5 deletions
diff --git a/data/global.pl b/data/global.pl index 8b5b8297..2c8a7a56 100644 --- a/data/global.pl +++ b/data/global.pl @@ -204,6 +204,7 @@ our %S = (%S, 'low', 'blacklist', ], + # note: keep these synchronised in script.js vn_rstat => [ 'Unknown', 'Pending', diff --git a/data/skingen/style.css b/data/skingen/style.css index 929bca2f..2df877bf 100644 --- a/data/skingen/style.css +++ b/data/skingen/style.css @@ -606,7 +606,7 @@ div.vndescription p { width: 90px; } .releases td.tc5 { - text-align: right; + width: 110px; } .releases td.tc5 a { color: $maintext$!important; @@ -642,6 +642,14 @@ a.addnew { margin: 0; } +#vldd { position: absolute; left: -500px; border: 1px solid $border$; background-color: $secbg$; width: 180px; } +#vldd ul { float: left; width: 90px; list-style-type: none; margin: 0; padding: 0 } +#vldd li b { display: block; font-weight: normal; padding-left: 5px; } +#vldd li i { display: block; font-style: normal; padding-left: 10px; } +#vldd li a { display: block; padding-left: 10px; color: $link$; border: 0; } +#vldd li a:hover { background: url($_boxbg$) repeat } +#vldd ul.full { width: 180px; text-align: center; } +#vldd ul.full li a { padding: 0 } diff --git a/lib/ChangeLog b/lib/ChangeLog index 5eb214ff..e0c76517 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -6,6 +6,14 @@ TODO: (preferably with the option to re-add them when unhiding) + Add a link for the hidden 'h' option at /hist +2.1 - ? + - Skin support + - 'show all items' tab to large forms + - Allow items to be selected using the mouse on the dropdown search + - [spoiler] tag produces mouseover-style spoilers instead of ROT13 + - Fixed tiny timezone-related bug + - Re-added release list dropdown on VN pages + 2.0 - 2008-12-20 - New layout - Massive code rewrite: diff --git a/lib/VNDB/Handler/ULists.pm b/lib/VNDB/Handler/ULists.pm index 5353dbc9..f86cba83 100644 --- a/lib/VNDB/Handler/ULists.pm +++ b/lib/VNDB/Handler/ULists.pm @@ -70,7 +70,8 @@ sub rlist { $f->{e} =~ /^([rv])(\d+)$/ && $1 eq 'r' ? (rstat => $2) : (vstat => $2) ) if $f->{e} ne 'del'; - $self->resRedirect('/r'.$id, 'temp'); + (my $ref = $self->reqHeader('Referer')||"/r$id") =~ s/^\Q$self->{url}//; + $self->resRedirect($ref, 'temp'); } diff --git a/lib/VNDB/Handler/VNPage.pm b/lib/VNDB/Handler/VNPage.pm index 35a9ac8c..b53b60ee 100644 --- a/lib/VNDB/Handler/VNPage.pm +++ b/lib/VNDB/Handler/VNPage.pm @@ -397,9 +397,9 @@ sub _releases { a href => "/r$rel->{id}", title => $rel->{original}||$rel->{title}, $rel->{title}; end; td class => 'tc5'; - if($rel->{ulist}) { - a href => "/r$rel->{id}"; - lit liststat $rel->{ulist}; + if($self->authInfo->{id}) { + a href => "/r$rel->{id}", id => "rlsel_$rel->{id}"; + lit $rel->{ulist} ? liststat $rel->{ulist} : '--'; end; } else { txt ' '; diff --git a/static/f/script.js b/static/f/script.js index 093bcb74..83530714 100644 --- a/static/f/script.js +++ b/static/f/script.js @@ -15,6 +15,10 @@ clearInterval(t);f()}},10);window.onload=f;} + + +/* A D V A N C E D S E A R C H */ + function searchInit() { cl('advselect', function() { var e = x('advoptions'); @@ -184,6 +188,66 @@ function ivClose() { + +/* V N L I S T D R O P D O W N */ + +var rstat = [ 'Unknown', 'Pending', 'Obtained', 'On loan', 'Deleted' ]; +var vstat = [ 'Unknown', 'Playing', 'Finished', 'Stalled', 'Dropped' ]; +function vlDropDown(e) { + e = e || window.event; + var tg = e.target || e.srcElement; + while(tg && (tg.nodeType == 3 || tg.nodeName.toLowerCase() != 'a')) + tg = tg.parentNode; + + var o = x('vldd'); + if(!o && (!tg || tg.id.substr(0,6) != 'rlsel_')) + return; + + if(o) { + var mouseX = e.pageX || (e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft); + var mouseY = e.pageY || (e.clientY + document.body.scrollTop + document.documentElement.scrollTop); + if((mouseX < ddx-5 || mouseX > ddx+o.offsetWidth+100 || mouseY < ddy-5 || mouseY > ddy+o.offsetHeight+5) + || (tg && tg.id.substr(0,6) == 'rlsel_' && tg.id != 'rlsel_'+o.relId)) { + document.body.removeChild(o); + o = null; + } + } + if(!o && tg) { + o = tg; + ddx = ddy = 0; + do { + ddx += o.offsetLeft; + ddy += o.offsetTop; + } while(o = o.offsetParent); + ddx -= 185; + + var cu = '/r'+tg.id.substr(6)+'/list?e='; + var st = tg.innerHTML.split(' / '); + var r = '<ul><li><b>Release status</b></li>'; + for(var i=0;i<rstat.length;i++) + r += st[0] && st[0].indexOf(rstat[i]) >= 0 ? '<li><i>'+rstat[i]+'</i></li>' : '<li><a href="'+cu+'r'+i+'">'+rstat[i]+'</a></li>'; + r += '</ul><ul><li><b>Play status</b></li>'; + for(var i=0;i<vstat.length;i++) + r += st[1] && st[1].indexOf(vstat[i]) >= 0 ? '<li><i>'+vstat[i]+'</i></li>' : '<li><a href="'+cu+'v'+i+'">'+vstat[i]+'</a></li>'; + r += '</ul>'; + if(tg.innerHTML != '--') + r += '<ul class="full"><li><a href="'+cu+'del">Remove from VN list</a></li></ul>'; + + o = document.createElement('div'); + o.id = 'vldd'; + o.relId = tg.id.substr(6); + o.style.left = ddx+'px'; + o.style.top = ddy+'px'; + o.innerHTML = r; + document.body.appendChild(o); + } +} + + + + + + /* J A V A S C R I P T T A B S */ function jtInit() { @@ -371,6 +435,14 @@ DOMLoad(function() { // initialize image viewer ivInit(); + // vnlist dropdown + var l = document.getElementsByTagName('a'); + for(var i=0;i<l.length;i++) + if(l[i].id.substr(0,6) == 'rlsel_') { + document.onmousemove = vlDropDown; + break; + } + // Javascript tabs if(x('jt_select')) jtInit(); |