summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2009-05-22 14:53:37 +0200
committerYorhel <git@yorhel.nl>2009-05-22 14:58:23 +0200
commitaaf5fba44b029ed83f290e6d4c5b9ed872d504b5 (patch)
tree75b413d7a6e0cd0bb1f9a662b48c473d81411d50
parent55e67a4c4f690b14c06e2a6b2c6608e2305dceb6 (diff)
Added resolution field to release entries
TODO: - Update d3 - Add filter to /r
-rw-r--r--ChangeLog1
-rw-r--r--data/global.pl12
-rw-r--r--lib/VNDB/DB/Releases.pm6
-rw-r--r--lib/VNDB/Handler/Releases.pm15
-rw-r--r--util/dump.sql3
-rw-r--r--util/updates/update_2.4.sql6
6 files changed, 37 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 1b19ca29..ff1950c4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
2.4 - ?
- Release search + browser + filters
- Javascript date input
+ - Resolution field for release entries
2.3 - 2009-04-01
- No page reload needed when changing rlist status from vn page
diff --git a/data/global.pl b/data/global.pl
index 739578bf..2beb87cb 100644
--- a/data/global.pl
+++ b/data/global.pl
@@ -192,6 +192,18 @@ our %S = (%S,
in => [ 'Internet download', 0 ],
otc => [ 'Other', 0 ],
},
+ resolutions => [
+ [ 'Unknown', '' ],
+ [ '640x480', '4:3' ],
+ [ '800x600', '4:3' ],
+ [ '1024x768', '4:3' ],
+ [ '640x400', 'widescreen' ],
+ [ '1024x640', 'widescreen' ],
+ [ '1280x720', 'widescreen' ],
+ [ '480x272 (PSP)', 'console' ],
+ [ '2x256x192 (NDS)', 'console' ],
+ [ '640x448 (TV)', 'console' ], # really?
+ ],
votes => [
'worst ever',
'awful',
diff --git a/lib/VNDB/DB/Releases.pm b/lib/VNDB/DB/Releases.pm
index 3831b0c8..fa352c1e 100644
--- a/lib/VNDB/DB/Releases.pm
+++ b/lib/VNDB/DB/Releases.pm
@@ -72,7 +72,7 @@ sub dbReleaseGet {
my @select = (
qw|r.id rr.title rr.original rr.language rr.website rr.released rr.minage rr.type rr.patch|,
'rr.id AS cid',
- $o{what} =~ /extended/ ? qw|rr.notes rr.catalog rr.gtin r.hidden r.locked| : (),
+ $o{what} =~ /extended/ ? qw|rr.notes rr.catalog rr.gtin rr.resolution r.hidden r.locked| : (),
$o{what} =~ /changes/ ? qw|c.added c.requester c.comments r.latest u.username c.rev| : (),
);
@@ -167,9 +167,9 @@ sub insert_rev {
my($self, $cid, $rid, $o) = @_;
$self->dbExec(q|
- INSERT INTO releases_rev (id, rid, title, original, gtin, catalog, language, website, released, notes, minage, type, patch)
+ INSERT INTO releases_rev (id, rid, title, original, gtin, catalog, language, website, released, notes, minage, type, patch, resolution)
VALUES (!l)|,
- [ $cid, $rid, @$o{qw| title original gtin catalog language website released notes minage type patch|} ]);
+ [ $cid, $rid, @$o{qw| title original gtin catalog language website released notes minage type patch resolution|} ]);
$self->dbExec(q|
INSERT INTO releases_producers (rid, pid)
diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm
index 30fede3d..69f406d6 100644
--- a/lib/VNDB/Handler/Releases.pm
+++ b/lib/VNDB/Handler/Releases.pm
@@ -57,6 +57,7 @@ sub page {
$med->[1] ? sprintf('%d %s%s', $_->{qty}, $med->[0], $_->{qty}>1?'s':'') : $med->[0]
} @{$_[0]};
} ],
+ [ resolution => 'Resolution', serialize => sub { $self->{resolutions}[$_[0]][0] } ],
[ producers => 'Producers', join => '<br />', split => sub {
map sprintf('<a href="/p%d" title="%s">%s</a>', $_->{id}, $_->{original}||$_->{name}, shorten $_->{name}, 50), @{$_[0]};
} ],
@@ -149,6 +150,13 @@ sub _infotable {
end;
}
+ if($r->{resolution}) {
+ Tr ++$i % 2 ? (class => 'odd') : ();
+ td 'Resolution';
+ td $self->{resolutions}[$r->{resolution}][0];
+ end;
+ }
+
Tr ++$i % 2 ? (class => 'odd') : ();
td 'Released';
td;
@@ -247,7 +255,7 @@ sub edit {
my $vn = $rid ? $r->{vn} : [{ vid => $vid, title => $v->{title} }];
my %b4 = !$rid ? () : (
- (map { $_ => $r->{$_} } qw|type title original gtin catalog language website released notes minage platforms patch|),
+ (map { $_ => $r->{$_} } qw|type title original gtin catalog language website released notes minage platforms patch resolution|),
media => join(',', sort map "$_->{medium} $_->{qty}", @{$r->{media}}),
producers => join('|||', map "$_->{id},$_->{name}", sort { $a->{id} <=> $b->{id} } @{$r->{producers}}),
);
@@ -270,6 +278,7 @@ sub edit {
{ name => 'notes', required => 0, default => '', maxlength => 10240 },
{ name => 'platforms', required => 0, default => '', multi => 1, enum => [ keys %{$self->{platforms}} ] },
{ name => 'media', required => 0, default => '' },
+ { name => 'resolution',required => 0, default => 0 },
{ name => 'producers', required => 0, default => '' },
{ name => 'vn', maxlength => 5000 },
{ name => 'editsum', maxlength => 5000 },
@@ -290,7 +299,7 @@ sub edit {
!grep !/^(platforms|producers|vn)$/ && $frm->{$_} ne $b4{$_}, keys %b4;
my %opts = (
- (map { $_ => $frm->{$_} } qw| type title original gtin catalog language website released notes minage platforms editsum patch |),
+ (map { $_ => $frm->{$_} } qw| type title original gtin catalog language website released notes minage platforms resolution editsum patch |),
vn => $new_vn,
producers => $producers,
media => $media,
@@ -340,6 +349,8 @@ sub _form {
[ static => content => 'Leave month or day blank if they are unknown' ],
[ select => short => 'minage', name => 'Age rating',
options => [ map [ $_, $self->{age_ratings}{$_} ], sort { $a <=> $b } keys %{$self->{age_ratings}} ] ],
+ [ select => short => 'resolution', name => 'Resolution', options => [
+ map [ $_, @{$self->{resolutions}[$_]} ], 0..$#{$self->{resolutions}} ] ],
[ textarea => short => 'notes', name => 'Notes' ],
[ static => content => 'Miscellaneous notes/comments, information that does not fit in the above fields. '
.'E.g.: Censored/uncensored or for which releases this patch applies. Max. 250 characters.' ],
diff --git a/util/dump.sql b/util/dump.sql
index 81343307..b33ae540 100644
--- a/util/dump.sql
+++ b/util/dump.sql
@@ -115,7 +115,8 @@ CREATE TABLE releases_rev (
minage smallint NOT NULL DEFAULT -1,
gtin bigint NOT NULL DEFAULT 0,
patch boolean NOT NULL DEFAULT FALSE,
- catalog varchar(50) NOT NULL DEFAULT ''
+ catalog varchar(50) NOT NULL DEFAULT '',
+ resolution smallint NOT NULL DEFAULT 0
);
-- releases_vn
diff --git a/util/updates/update_2.4.sql b/util/updates/update_2.4.sql
index 03b18dd7..c784d361 100644
--- a/util/updates/update_2.4.sql
+++ b/util/updates/update_2.4.sql
@@ -31,3 +31,9 @@ END;
$$ LANGUAGE plpgsql;
SELECT tag_vn_calc();
+
+
+-- resolution field to releases
+
+ALTER TABLE releases_rev ADD COLUMN resolution smallint NOT NULL DEFAULT 0;
+