diff options
author | Yorhel <git@yorhel.nl> | 2019-10-16 15:48:59 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2019-10-16 15:49:03 +0200 |
commit | b7ed0a4f7b93707aee0c06b343685569e21fbab7 (patch) | |
tree | 9575dbea055346b031dd7401ab485aac0d9c2ea8 | |
parent | 678f511619708ba893cb2414eead90cdae685708 (diff) |
Fix editing of staff entries without Wikidata
And I can't say the wikidata field is all that intuitive to edit. Need
to look at it later...
-rw-r--r-- | elm/Lib/Html.elm | 8 | ||||
-rw-r--r-- | elm/StaffEdit/Main.elm | 6 | ||||
-rw-r--r-- | lib/VNWeb/Staff/Edit.pm | 2 |
3 files changed, 9 insertions, 7 deletions
diff --git a/elm/Lib/Html.elm b/elm/Lib/Html.elm index fe67da32..3aae21c7 100644 --- a/elm/Lib/Html.elm +++ b/elm/Lib/Html.elm @@ -113,11 +113,13 @@ inputRadio nam val onch = input ( -- Same as an inputText, but formats/parses an integer as Q### -inputWikidata : String -> Int -> (Int -> m) -> Html m +inputWikidata : String -> Maybe Int -> (Maybe Int -> m) -> Html m inputWikidata nam val onch = inputText nam - (if val == 0 then "" else "Q" ++ String.fromInt val) - (\v -> onch <| if v == "" then 0 else Maybe.withDefault val <| String.toInt <| if String.startsWith "Q" v then String.dropLeft 1 v else v) + (case val of + Nothing -> "" + Just v -> "Q" ++ String.fromInt v) + (\v -> onch <| if v == "" then Nothing else String.toInt <| if String.startsWith "Q" v then String.dropLeft 1 v else v) [ pattern "^Q?[1-9][0-9]{0,8}$" ] diff --git a/elm/StaffEdit/Main.elm b/elm/StaffEdit/Main.elm index f9d1f3da..909cfd82 100644 --- a/elm/StaffEdit/Main.elm +++ b/elm/StaffEdit/Main.elm @@ -33,7 +33,7 @@ type alias Model = , gender : String , lang : String , l_site : String - , l_wikidata : Int + , l_wikidata : Maybe Int , l_twitter : String , l_anidb : Maybe Int , l_pixiv : Int @@ -71,7 +71,7 @@ new = , gender = "unknown" , lang = "ja" , l_site = "" - , l_wikidata = 0 + , l_wikidata = Nothing , l_twitter = "" , l_anidb = Nothing , l_pixiv = 0 @@ -110,7 +110,7 @@ type Msg | Lang String | Gender String | Website String - | LWikidata Int + | LWikidata (Maybe Int) | LTwitter String | LAnidb String | LPixiv String diff --git a/lib/VNWeb/Staff/Edit.pm b/lib/VNWeb/Staff/Edit.pm index b3c69db7..43ca9c90 100644 --- a/lib/VNWeb/Staff/Edit.pm +++ b/lib/VNWeb/Staff/Edit.pm @@ -15,7 +15,7 @@ my $FORM = { gender => { required => 0, default => 'unknown', enum => [qw[unknown m f]] }, lang => { language => 1 }, l_site => { required => 0, default => '', weburl => 1 }, - l_wikidata => { required => 0, default => 0, id => 1 }, + l_wikidata => { required => 0, id => 1 }, l_twitter => { required => 0, default => '', regex => qr/^\S+$/, maxlength => 16 }, l_anidb => { required => 0, id => 1, default => undef }, l_pixiv => { required => 0, id => 1, default => 0 }, |