From ba035329e131ab342fe3c873f98b01b1c383b248 Mon Sep 17 00:00:00 2001 From: yorhel Date: Wed, 27 Aug 2008 11:05:59 +0000 Subject: Added release link to screenshots git-svn-id: svn://vndb.org/vndb@103 1fe2e327-d9db-4752-bcf7-ef0cb4a1748b --- data/tpl/vnedit | 3 +++ data/tpl/vnpage | 2 +- data/tpl/vnpage_scr | 16 +++++++++++++--- lib/ChangeLog | 2 ++ lib/VNDB/Util/DB.pm | 8 ++++---- lib/VNDB/VN.pm | 7 ++++--- static/files/def.js | 4 +++- static/files/dyna.js | 43 ++++++++++++++++++++++++++++++++++--------- static/files/style.css | 14 +++++++++++--- util/dump.sql | 2 ++ util/updates/update_1.22.sql | 5 +++++ 11 files changed, 82 insertions(+), 24 deletions(-) diff --git a/data/tpl/vnedit b/data/tpl/vnedit index 70bf09a5..eaddf8ed 100644 --- a/data/tpl/vnedit +++ b/data/tpl/vnedit @@ -105,6 +105,9 @@ Make sure to submit the form after the upload has finished!
...make sure to enable Javascript...
+ |}, { type => 'sub', title => 'Edit summary', short => 'com' }, diff --git a/data/tpl/vnpage b/data/tpl/vnpage index a773a3a1..2e9fc6aa 100644 --- a/data/tpl/vnpage +++ b/data/tpl/vnpage @@ -35,7 +35,7 @@ [ categories => 'Categories', sub { join(' ', map { my $l=$VNDB::CAT->{substr($_->[0],0,1)}[1]{substr($_->[0],1,2)}; $l?$l.'('.$_->[1].')':() } sort { $a->[0] cmp $b->[0] } @{$_[0]}) || 'No categories selected' }, 1 ], [ relations => 'Relations', sub { join("
\n", map { $VNDB::VREL->[$_->{relation}].': '._hchar($_->{title}) } sort { $a->{id} <=> $b->{id} } @{$_[0]}) } ], [ image => 'Image', sub { $_[0] > 0 ? sprintf '', $p{st}, $_[0]%100, $_[0] : $_[0] < 0 ? '[processing]' : 'No image'; } ], - [ screenshots => 'Screenshots', sub { join "
\n", map sprintf('%3$d (%s)',$p{st},$$_{id}%100,$$_{id},$$_{nsfw}?'NSFW':'Safe'), @{$_[0]} } ], + [ screenshots => 'Screenshots', sub { join "
\n", map sprintf('[%s] %4$d (%s)',$$_{rid}?qq|r$$_{rid}|:'no release',$p{st},$$_{id}%100,$$_{id},$$_{nsfw}?'NSFW':'Safe'), @{$_[0]} } ], [ img_nsfw => 'NSFW', sub { $_[0] ? 'Not safe' : 'Safe' } ] ) ]] [[ } ]]- diff --git a/data/tpl/vnpage_scr b/data/tpl/vnpage_scr index 0675d093..f0c4ae9f 100644 --- a/data/tpl/vnpage_scr +++ b/data/tpl/vnpage_scr @@ -7,15 +7,25 @@ ]]-
-[[ for(@{$d{vn}{screenshots}}) { ]] +[[ for my $r (undef, @{$d{rel}}) { + my @s = grep { !$r && !$_->{rid} || $r && $_->{rid} && $_->{rid} == $r->{id} } @{$d{vn}{screenshots}}; + next if !@s; +]]- +[[ if($r) { ]] +  +[[: $r->{title} ]] +[[ } ]] +[[ for(@s) { ]] [[ } ]]- +

+[[ } ]] +
[[ if($nsfw) { ]]- -

 

Items marked with a red X are flagged as NSFW. [[ } ]]- diff --git a/lib/ChangeLog b/lib/ChangeLog index 756f6a9a..652e0afd 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -5,6 +5,7 @@ TODO: + Remove all references to an item when it's hidden (preferably with the option to re-add them when unhiding) + Add a link for the hidden 'h' option at /hist + + Rewrite the revision diff code, it's horrible... 1.22 - ? - Inverted vote graph @@ -18,6 +19,7 @@ TODO: changes (causedby) -> changes (id) threads (id, count) -> threads_posts (tid, num) - Converted relation graphs to PNG + - Added link between screenshots and releases 1.21 - 2008-08-16 (r90) - Added !vn and !uptime commands to Multi::IRC diff --git a/lib/VNDB/Util/DB.pm b/lib/VNDB/Util/DB.pm index 2f9ae9f2..8641f6b0 100644 --- a/lib/VNDB/Util/DB.pm +++ b/lib/VNDB/Util/DB.pm @@ -824,7 +824,7 @@ sub DBGetVN { # %options->{ id rev char search order results page what cati cate if($o{what} =~ /screenshots/) { push(@{$r->[$r{$_->{vid}}]{screenshots}}, $_) && delete $_->{vid} for (@{$s->DBAll(q| - SELECT vs.vid, s.id, vs.nsfw, s.width, s.height + SELECT vs.vid, s.id, vs.nsfw, vs.rid, s.width, s.height FROM vn_screenshots vs JOIN screenshots s ON vs.scr = s.id WHERE vs.vid IN(!l) @@ -917,9 +917,9 @@ sub _insert_vn_rev { # columns in vn_rev + categories + screenshots + relations ) for (@{$o->{categories}}); $s->DBExec(q| - INSERT INTO vn_screenshots (vid, scr, nsfw) - VALUES (?, ?, ?)|, - $cid, $_->[0], $_->[1]?1:0 + INSERT INTO vn_screenshots (vid, scr, nsfw, rid) + VALUES (?, ?, ?, ?)|, + $cid, $_->[0], $_->[1]?1:0, $_->[2] ) for (@{$o->{screenshots}}); $s->DBExec(q| diff --git a/lib/VNDB/VN.pm b/lib/VNDB/VN.pm index 9c872619..544bc351 100644 --- a/lib/VNDB/VN.pm +++ b/lib/VNDB/VN.pm @@ -83,7 +83,7 @@ sub VNEdit { relations => join('|||', map { $_->{relation}.','.$_->{id}.','.$_->{title} } @{$v->{relations}}), categories => join(',', map { $_->[0].$_->[1] } sort { $a->[0] cmp $b->[0] } @{$v->{categories}}), anime => join(' ', sort { $a <=> $b } map $_->{id}, @{$v->{anime}}), - screenshots => join(' ', map "$$_{id},$$_{nsfw}", @{$v->{screenshots}}), + screenshots => join(' ', map sprintf('%d,%d,%d', $$_{id}, $$_{nsfw}?1:0, $$_{rid}||0), @{$v->{screenshots}}), ) : (); my $frm = {}; @@ -107,11 +107,11 @@ sub VNEdit { my $relations = [ map { /^([0-9]+),([0-9]+)/ && $2 != $id ? ( [ $1, $2 ] ) : () } split /\|\|\|/, $frm->{relations} ]; my $cat = [ map { [ substr($_,0,3), substr($_,3,1) ] } split /,/, $frm->{categories} ]; my $anime = [ grep /^[0-9]+$/, split / +/, $frm->{anime} ]; - my $screenshots = [ map [split /,/], grep /^[0-9]+,[01]$/, split / +/, $frm->{screenshots} ]; + my $screenshots = [ map { local $_=[split /,/];$$_[2]||=undef; $_ } grep /^[0-9]+,[01],[0-9]+$/, split / +/, $frm->{screenshots} ]; $frm->{img_nsfw} = $frm->{img_nsfw} ? 1 : 0; $frm->{anime} = join ' ', sort { $a <=> $b } @$anime; # re-sort - $frm->{screenshots} = join ' ', map "$$_[0],$$_[1]", sort { $$a[0] <=> $$b[0] } @$screenshots; + $frm->{screenshots} = join ' ', map sprintf('%d,%d,%d', $$_[0], $$_[1]?1:0, $$_[2]||0), sort { $$a[0] <=> $$b[0] } @$screenshots; return $self->ResRedirect('/v'.$id, 'post') if $id && !$self->ReqParam('img') && 13 == scalar grep { $b4{$_} eq $frm->{$_} } keys %b4; @@ -191,6 +191,7 @@ sub VNEdit { form => $frm, id => $id, vn => $v, + rel => scalar $self->DBGetRelease(vid => $id), }); } diff --git a/static/files/def.js b/static/files/def.js index b9efaebb..4928cb84 100644 --- a/static/files/def.js +++ b/static/files/def.js @@ -230,6 +230,8 @@ function scrNsfwHid() { var t=0;var n=0; for(i=0;i=0) n++; @@ -251,7 +253,7 @@ function scrView(what) { if(ol.length > 0) { var l=[]; for(i=0;i=0 && (!scrNsfwEnabled || ol[i].className.indexOf('scr_nsfw')<0)) l[l.length] = ol[i]; ol=0; diff --git a/static/files/dyna.js b/static/files/dyna.js index b711fec2..f698cd9d 100644 --- a/static/files/dyna.js +++ b/static/files/dyna.js @@ -593,13 +593,13 @@ function catSet(id, rnk) { \***************************/ -var scrL = []; // id, load, nsfw, obj +var scrL = []; // id, load, nsfw, obj, rid function scrLoad() { // 'screenshots' format: id,nsfw id,nsfw .. var l=x('screenshots').value.split(' '); for(var i=0;i 2) - scrL[i] = { load: 2, id: l[i].split(',')[0], nsfw: l[i].split(',')[1]>0?1:0 }; + scrL[i] = { load: 2, id: l[i].split(',')[0], nsfw: l[i].split(',')[1]>0?1:0, rid: l[i].split(',')[2] }; // because IE can't operate on x('scrfrm').innerHTML = '
'; @@ -615,14 +615,21 @@ function scrLoad() { function scrSetSubmit() { var o=document.forms[1].onsubmit; document.forms[1].onsubmit = function() { - var c=0; - for(var i=0;i ' +'' +'' - +'

Full size: '+scrL[i].width+'x'+scrL[i].height+'px'; + +'
Release:' + +'' + +'
Full size: '+scrL[i].width+'x'+scrL[i].height+'px'; if(scrL[i].obj) { x('scrTr'+i).getElementsByTagName('td')[1].innerHTML = r; @@ -708,6 +717,21 @@ function scrStripe() { l[j].style.backgroundColor = j%2==0 ? '#fff' : '#f5f5f5'; } +function scrRelLine(rid, sel) { + var r; + for(var i=0;i['+r[1]+'] '+r[2]+''; +} + +function scrRelList(rid) { + var r=''; + for(var i=0;i 0) { try { @@ -779,7 +803,8 @@ function scrSer() { for(var i=0;i