diff options
author | Yorhel <git@yorhel.nl> | 2022-07-31 17:07:48 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2022-07-31 17:07:49 +0200 |
commit | 691797f62bdc6df8307f6bd47b9ca14dda8920d7 (patch) | |
tree | 52a50373bf865faca97a64b22905824f3879dc24 /elm | |
parent | ec20437fc576d156eb8ccec7ac49a01fecf76add (diff) |
Add VN development status field
https://vndb.org/t18854
Diffstat (limited to 'elm')
-rw-r--r-- | elm/AdvSearch/Fields.elm | 6 | ||||
-rw-r--r-- | elm/AdvSearch/Set.elm | 23 | ||||
-rw-r--r-- | elm/VNEdit.elm | 7 |
3 files changed, 36 insertions, 0 deletions
diff --git a/elm/AdvSearch/Fields.elm b/elm/AdvSearch/Fields.elm index d0a02d51..fa08f585 100644 --- a/elm/AdvSearch/Fields.elm +++ b/elm/AdvSearch/Fields.elm @@ -290,6 +290,7 @@ type FieldModel | FMRPlatform (AS.Model String) | FMVPlatform (AS.Model String) | FMLength (AS.Model Int) + | FMDevStatus (AS.Model Int) | FMRole (AS.Model String) | FMBlood (AS.Model String) | FMSex (AS.SexModel) @@ -335,6 +336,7 @@ type FieldMsg | FSRPlatform (AS.Msg String) | FSVPlatform (AS.Msg String) | FSLength (AS.Msg Int) + | FSDevStatus (AS.Msg Int) | FSRole (AS.Msg String) | FSBlood (AS.Msg String) | FSSex AS.SexMsg @@ -431,6 +433,7 @@ fields = , f V "My Labels" 0 FMLabel AS.init AS.labelFromQuery , l V "My List" 0 [(QInt 65 Eq 1, "On my list"), (QInt 65 Ne 1, "Not on my list")] , f V "Length" 0 FMLength AS.init AS.lengthFromQuery + , f V "Development status" 0 FMDevStatus AS.init AS.devStatusFromQuery , f V "Release date" 0 FMRDate AD.init AD.fromQuery , f V "Popularity" 0 FMPopularity AR.popularityInit AR.popularityFromQuery , f V "Rating" 0 FMRating AR.ratingInit AR.ratingFromQuery @@ -554,6 +557,7 @@ fieldUpdate dat msg_ (num, dd, model) = (FSRPlatform msg,FMRPlatform m)-> maps FMRPlatform(AS.update msg m) (FSVPlatform msg,FMVPlatform m)-> maps FMVPlatform(AS.update msg m) (FSLength msg, FMLength m) -> maps FMLength (AS.update msg m) + (FSDevStatus msg,FMDevStatus m)-> maps FMDevStatus(AS.update msg m) (FSRole msg, FMRole m) -> maps FMRole (AS.update msg m) (FSBlood msg, FMBlood m) -> maps FMBlood (AS.update msg m) (FSSex msg, FMSex m) -> maps FMSex (AS.sexUpdate msg m) @@ -622,6 +626,7 @@ fieldView dat (_, dd, model) = FMVPlatform m -> f FSVPlatform (AS.platformView False m) FMRPlatform m -> f FSRPlatform (AS.platformView True m) FMLength m -> f FSLength (AS.lengthView m) + FMDevStatus m -> f FSDevStatus (AS.devStatusView m) FMRole m -> f FSRole (AS.roleView m) FMBlood m -> f FSBlood (AS.bloodView m) FMSex m -> f FSSex (AS.sexView m) @@ -671,6 +676,7 @@ fieldToQuery dat (_, _, model) = FMRPlatform m-> AS.toQuery (QStr 4) m FMVPlatform m-> AS.toQuery (QStr 4) m FMLength m -> AS.toQuery (QInt 5) m + FMDevStatus m-> AS.toQuery (QInt 66) m FMRole m -> AS.toQuery (QStr 2) m FMBlood m -> AS.toQuery (QStr 3) m FMSex (s,m) -> AS.toQuery (QStr (if s then 5 else 4)) m diff --git a/elm/AdvSearch/Set.elm b/elm/AdvSearch/Set.elm index b787b7e4..68984fcc 100644 --- a/elm/AdvSearch/Set.elm +++ b/elm/AdvSearch/Set.elm @@ -216,6 +216,29 @@ lengthFromQuery = fromQuery (\q -> +-- Development status + +devStatusView model = + ( case Set.toList model.sel of + [] -> b [ class "grayedout" ] [ text "Status" ] + [v] -> span [ class "nowrap" ] [ lblPrefix model, text <| Maybe.withDefault "" (lookup v GT.devStatus) ] + l -> span [] [ lblPrefix model, text <| "Length (" ++ String.fromInt (List.length l) ++ ")" ] + , \() -> + [ div [ class "advheader" ] + [ h3 [] [ text "Development status" ] + , opts model False True ] + , ul [] <| List.map (\(l,t) -> li [] [ linkRadio (Set.member l model.sel) (Sel l) [ text t ] ]) GT.devStatus + ] + ) + +devStatusFromQuery = fromQuery (\q -> + case q of + QInt 66 op v -> Just (op, v) + _ -> Nothing) + + + + -- Character role roleView model = diff --git a/elm/VNEdit.elm b/elm/VNEdit.elm index fe2808ac..18d1faf2 100644 --- a/elm/VNEdit.elm +++ b/elm/VNEdit.elm @@ -55,6 +55,7 @@ type alias Model = , titles : List GVE.RecvTitles , alias : String , desc : TP.Model + , devStatus : Int , olang : String , length : Int , lWikidata : Maybe Int @@ -91,6 +92,7 @@ init d = , titles = d.titles , alias = d.alias , desc = TP.bbcode d.desc + , devStatus = d.devstatus , olang = d.olang , length = d.length , lWikidata = d.l_wikidata @@ -126,6 +128,7 @@ encode model = , locked = model.editsum.locked , titles = model.titles , alias = model.alias + , devstatus = model.devStatus , desc = model.desc.data , olang = model.olang , length = model.length @@ -161,6 +164,7 @@ type Msg | Submitted GApi.Response | Alias String | Desc TP.Msg + | DevStatus Int | Length Int | LWikidata (Maybe Int) | LRenai String @@ -224,6 +228,7 @@ update msg model = InvalidEnable -> ({ model | invalidDis = False }, Cmd.none) Alias s -> ({ model | alias = s, dupVNs = [] }, Cmd.none) Desc m -> let (nm,nc) = TP.update m model.desc in ({ model | desc = nm }, Cmd.map Desc nc) + DevStatus b-> ({ model | devStatus = b }, Cmd.none) Length n -> ({ model | length = n }, Cmd.none) LWikidata n-> ({ model | lWikidata = n }, Cmd.none) LRenai s -> ({ model | lRenai = s }, Cmd.none) @@ -398,6 +403,8 @@ view model = [ TP.view "desc" model.desc Desc 600 (style "height" "180px" :: onInvalid (Invalid General) :: GVE.valDesc) [ b [ class "standout" ] [ text "English please!" ] ] , text "Short description of the main story. Please do not include spoilers, and don't forget to list the source in case you didn't write the description yourself." ] + , formField "devstatus::Development status" + [ inputSelect "devstatus" model.devStatus DevStatus [] GT.devStatus ] , formField "length::Length" [ inputSelect "length" model.length Length [] GT.vnLengths , text " (only displayed if there are no length votes)" ] |