diff options
Diffstat (limited to 'elm3/VNEdit/Titles.elm')
-rw-r--r-- | elm3/VNEdit/Titles.elm | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/elm3/VNEdit/Titles.elm b/elm3/VNEdit/Titles.elm deleted file mode 100644 index 9dad830d..00000000 --- a/elm3/VNEdit/Titles.elm +++ /dev/null @@ -1,103 +0,0 @@ -module VNEdit.Titles exposing (..) - -import Html exposing (..) -import Html.Attributes exposing (..) -import Dict -import Lib.Html exposing (..) -import Lib.Gen exposing (..) -import Lib.Util exposing (..) - - -type alias Model = - { title : String - , original : String - , alias : String - , aliasList : List String - , aliasDuplicates : Bool - , aliasBad : List String - , aliasRel : Dict.Dict String Bool - } - - -init : VNEdit -> Model -init d = - { title = d.title - , original = d.original - , alias = d.alias - , aliasList = splitLn d.alias - , aliasDuplicates = False - , aliasBad = [] - , aliasRel = Dict.fromList <| List.map (\e -> (e,True)) <| List.map .title d.releases ++ List.map .original d.releases - } - - -new : Model -new = - { title = "" - , original = "" - , alias = "" - , aliasList = [] - , aliasDuplicates = False - , aliasBad = [] - , aliasRel = Dict.empty - } - - -type Msg - = Title String - | Original String - | Alias String - - -update : Msg -> Model -> Model -update msg model = - case msg of - Title s -> { model | title = s } - Original s -> { model | original = s } - Alias s -> - let - lst = splitLn s - check a = a == model.title || a == model.original || Dict.member a model.aliasRel - in - { model - | alias = s - , aliasList = lst - , aliasDuplicates = hasDuplicates lst - , aliasBad = List.filter check lst - } - - -view : Model -> List (Html Msg) -view model = - [ cardRow "Title" Nothing <| formGroups - [ [ label [for "title"] [text "Title (romaji)"] - , inputText "title" model.title Title [required True, maxlength 250] - ] - , [ label [for "original"] [text "Original"] - , inputText "original" model.original Original [maxlength 250] - , div [class "form-group__help"] [text "The original title of this visual novel, leave blank if it already is in the Latin alphabet."] - ] - ] - , cardRow "Aliases" Nothing <| formGroup - [ inputTextArea "aliases" model.alias Alias - [ rows 4, maxlength 500 - , classList [("is-invalid", model.aliasDuplicates || not (List.isEmpty model.aliasBad))] - ] - , if model.aliasDuplicates - then div [class "invalid-feedback"] - [ text "There are duplicate aliases." ] - else text "" - , if List.isEmpty model.aliasBad - then text "" - else div [class "invalid-feedback"] - [ text - <| "The following aliases are already listed elsewhere and should be removed: " - ++ String.join ", " model.aliasBad - ] - , div [class "form-group__help"] - [ text "List of alternative titles or abbreviations. One line for each alias. Can include both official (japanese/english) titles and unofficial titles used around net." - , br [] [] - , text "Titles that are listed in the releases should not be added here!" - ] - ] - ] |