summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2020-01-03 15:12:47 +0100
committerYorhel <git@yorhel.nl>2020-01-03 15:12:47 +0100
commit8620f71c6180e06164b2b51f930d94acaa439036 (patch)
tree95708936782a2a77bd5346daed4da8a609c43e24
parentd2fef9e2f1df8318c27651e6d1e8502857a49756 (diff)
ulist: Display platform icons in releases listing
-rw-r--r--elm/Lib/Html.elm3
-rw-r--r--elm/UList/Opt.elm5
-rw-r--r--lib/VNWeb/Elm.pm6
-rw-r--r--lib/VNWeb/Releases/JS.pm1
-rw-r--r--lib/VNWeb/User/Lists.pm2
5 files changed, 13 insertions, 4 deletions
diff --git a/elm/Lib/Html.elm b/elm/Lib/Html.elm
index 66436073..2e534246 100644
--- a/elm/Lib/Html.elm
+++ b/elm/Lib/Html.elm
@@ -201,5 +201,8 @@ formField lbl cont =
langIcon : String -> Html m
langIcon l = abbr [ class "icons lang", class l, title (Maybe.withDefault "" <| lookup l T.languages) ] [ text " " ]
+platformIcon : String -> Html m
+platformIcon l = abbr [ class "icons", class l, title (Maybe.withDefault "" <| lookup l T.platforms) ] [ text " " ]
+
releaseTypeIcon : String -> Html m
releaseTypeIcon t = abbr [ class ("icons rt"++t), title (Maybe.withDefault "" <| lookup t T.releaseTypes) ] [ text " " ]
diff --git a/elm/UList/Opt.elm b/elm/UList/Opt.elm
index f5ed7303..e05a21d9 100644
--- a/elm/UList/Opt.elm
+++ b/elm/UList/Opt.elm
@@ -214,7 +214,10 @@ view model =
]
]
, td [ class "tco2" ] [ RDate.display model.today nfo.released ]
- , td [ class "tco3" ] <| List.map langIcon nfo.lang ++ [ releaseTypeIcon nfo.rtype ]
+ , td [ class "tco3" ]
+ <| List.map platformIcon nfo.platforms
+ ++ List.map langIcon nfo.lang
+ ++ [ releaseTypeIcon nfo.rtype ]
, td [ class "tco4" ] [ a [ href ("/r"++String.fromInt nfo.id), title nfo.original ] [ text nfo.title ] ]
]
diff --git a/lib/VNWeb/Elm.pm b/lib/VNWeb/Elm.pm
index 9920adbb..7bca4497 100644
--- a/lib/VNWeb/Elm.pm
+++ b/lib/VNWeb/Elm.pm
@@ -53,6 +53,7 @@ my %apis = (
released => { uint => 1 },
rtype => {},
lang => { type => 'array', values => {} },
+ platforms=> { type => 'array', values => {} },
} } ],
BoardResult => [ { aoh => { # Response to /t/boards.json
btype => {},
@@ -253,9 +254,8 @@ sub write_types {
$data .= def skins => 'List (String, String)' =>
list map tuple(string $_, string tuwf->{skins}{$_}[0]),
sort { tuwf->{skins}{$a}[0] cmp tuwf->{skins}{$b}[0] } keys tuwf->{skins}->%*;
- $data .= def languages => 'List (String, String)' =>
- list map tuple(string $_, string $LANGUAGE{$_}),
- sort { $LANGUAGE{$a} cmp $LANGUAGE{$b} } keys %LANGUAGE;
+ $data .= def languages => 'List (String, String)' => list map tuple(string $_, string $LANGUAGE{$_}), sort { $LANGUAGE{$a} cmp $LANGUAGE{$b} } keys %LANGUAGE;
+ $data .= def platforms => 'List (String, String)' => list map tuple(string $_, string $PLATFORM{$_}), keys %PLATFORM;
$data .= def releaseTypes => 'List (String, String)' => list map tuple(string $_, string $RELEASE_TYPE{$_}), keys %RELEASE_TYPE;
$data .= def rlistStatus => 'List (Int, String)' => list map tuple($_, string $RLIST_STATUS{$_}), keys %RLIST_STATUS;
$data .= def boardTypes => 'List (String, String)' => list map tuple(string $_, string $BOARD_TYPE{$_}{txt}), keys %BOARD_TYPE;
diff --git a/lib/VNWeb/Releases/JS.pm b/lib/VNWeb/Releases/JS.pm
index a258036b..34bf823f 100644
--- a/lib/VNWeb/Releases/JS.pm
+++ b/lib/VNWeb/Releases/JS.pm
@@ -15,6 +15,7 @@ json_api qr{/r/get\.json}, { vid => { id => 1 } }, sub {
'ORDER BY r.released, r.title, r.id'
);
enrich_flatten lang => id => id => sub { sql('SELECT id, lang FROM releases_lang WHERE id IN', $_, 'ORDER BY lang') }, $l;
+ enrich_flatten platforms => id => id => sub { sql('SELECT id, platform FROM releases_platforms WHERE id IN', $_, 'ORDER BY platform') }, $l;
elm_Releases $l;
};
diff --git a/lib/VNWeb/User/Lists.pm b/lib/VNWeb/User/Lists.pm
index 6b6fbedd..bc806c2c 100644
--- a/lib/VNWeb/User/Lists.pm
+++ b/lib/VNWeb/User/Lists.pm
@@ -179,6 +179,7 @@ my $VNOPT = form_compile any => {
released => { uint => 1 },
rtype => {},
lang => { type => 'array', values => {} },
+ platforms=> { type => 'array', values => {} },
} },
relstatus => { type => 'array', values => { uint => 1 } }, # List of release statuses, same order as rels
};
@@ -480,6 +481,7 @@ sub listing_ {
}, $lst;
enrich_flatten lang => id => id => sub { sql('SELECT id, lang FROM releases_lang WHERE id IN', $_, 'ORDER BY lang') }, map $_->{rels}, @$lst;
+ enrich_flatten platforms => id => id => sub { sql('SELECT id, platform FROM releases_platforms WHERE id IN', $_, 'ORDER BY platform') }, map $_->{rels}, @$lst;
# TODO: Thumbnail view?
paginate_ $url, $opt->{p}, [ $count, 50 ], 't', sub {