summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/global.pl1
-rw-r--r--data/skingen/style.css10
-rw-r--r--lib/ChangeLog8
-rw-r--r--lib/VNDB/Handler/ULists.pm3
-rw-r--r--lib/VNDB/Handler/VNPage.pm6
-rw-r--r--static/f/script.js72
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();