mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-06 23:25:58 +00:00
parent
ee2a4aaaf0
commit
0cb2bde160
@ -21,7 +21,7 @@ import Data.DropdownStyle as DS
|
|||||||
import Data.Flags exposing (Flags)
|
import Data.Flags exposing (Flags)
|
||||||
import Html exposing (..)
|
import Html exposing (..)
|
||||||
import Html.Attributes exposing (..)
|
import Html.Attributes exposing (..)
|
||||||
import Html.Events exposing (onClick, onInput)
|
import Html.Events exposing (onBlur, onClick, onInput)
|
||||||
import Http
|
import Http
|
||||||
import Styles as S
|
import Styles as S
|
||||||
import Util.Html exposing (onKeyUp)
|
import Util.Html exposing (onKeyUp)
|
||||||
@ -34,6 +34,7 @@ type alias Model =
|
|||||||
, menuOpen : Bool
|
, menuOpen : Bool
|
||||||
, candidates : List String
|
, candidates : List String
|
||||||
, active : Maybe String
|
, active : Maybe String
|
||||||
|
, backspaceCount : Int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -43,6 +44,7 @@ init =
|
|||||||
, menuOpen = False
|
, menuOpen = False
|
||||||
, candidates = []
|
, candidates = []
|
||||||
, active = Nothing
|
, active = Nothing
|
||||||
|
, backspaceCount = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -94,7 +96,14 @@ update flags current msg model =
|
|||||||
email =
|
email =
|
||||||
Maybe.withDefault model.input model.active
|
Maybe.withDefault model.input model.active
|
||||||
in
|
in
|
||||||
update flags current (AddEmail email) model
|
if email == "" then
|
||||||
|
( model, Cmd.none, current )
|
||||||
|
|
||||||
|
else
|
||||||
|
update flags current (AddEmail email) model
|
||||||
|
|
||||||
|
removeLast =
|
||||||
|
( { model | backspaceCount = 0 }, Cmd.none, Util.List.dropRight 1 current )
|
||||||
in
|
in
|
||||||
case Util.Html.intToKeyCode code of
|
case Util.Html.intToKeyCode code of
|
||||||
Just Util.Html.Up ->
|
Just Util.Html.Up ->
|
||||||
@ -128,6 +137,13 @@ update flags current msg model =
|
|||||||
Just Util.Html.Space ->
|
Just Util.Html.Space ->
|
||||||
addCurrent
|
addCurrent
|
||||||
|
|
||||||
|
Just Util.Html.Backspace ->
|
||||||
|
if model.backspaceCount >= 1 then
|
||||||
|
removeLast
|
||||||
|
|
||||||
|
else
|
||||||
|
( { model | backspaceCount = model.backspaceCount + 1 }, Cmd.none, current )
|
||||||
|
|
||||||
_ ->
|
_ ->
|
||||||
( model, Cmd.none, current )
|
( model, Cmd.none, current )
|
||||||
|
|
||||||
@ -154,9 +170,12 @@ type alias ViewSettings =
|
|||||||
view2 : ViewSettings -> List String -> Model -> Html Msg
|
view2 : ViewSettings -> List String -> Model -> Html Msg
|
||||||
view2 cfg values model =
|
view2 cfg values model =
|
||||||
div [ class "text-sm flex-row space-x-2 relative" ]
|
div [ class "text-sm flex-row space-x-2 relative" ]
|
||||||
[ div [ class cfg.style.link ]
|
[ div
|
||||||
|
[ class cfg.style.link
|
||||||
|
, class "flex-wrap"
|
||||||
|
]
|
||||||
[ div
|
[ div
|
||||||
[ class "flex flex-row space-x-2 mr-2"
|
[ class "flex flex-row space-x-2 mr-2 flex-wrap"
|
||||||
, classList [ ( "hidden", List.isEmpty values ) ]
|
, classList [ ( "hidden", List.isEmpty values ) ]
|
||||||
]
|
]
|
||||||
(List.map renderValue2 values)
|
(List.map renderValue2 values)
|
||||||
@ -166,6 +185,7 @@ view2 cfg values model =
|
|||||||
, placeholder cfg.placeholder
|
, placeholder cfg.placeholder
|
||||||
, onKeyUp KeyPress
|
, onKeyUp KeyPress
|
||||||
, onInput SetInput
|
, onInput SetInput
|
||||||
|
, onBlur (KeyPress 13)
|
||||||
, class "inline-flex w-24 border-0 px-0 focus:ring-0 h-6 text-sm"
|
, class "inline-flex w-24 border-0 px-0 focus:ring-0 h-6 text-sm"
|
||||||
, class "placeholder-gray-400 dark:text-bluegray-200 dark:bg-bluegray-800 dark:border-bluegray-500"
|
, class "placeholder-gray-400 dark:text-bluegray-200 dark:bg-bluegray-800 dark:border-bluegray-500"
|
||||||
]
|
]
|
||||||
|
@ -44,6 +44,8 @@ type KeyCode
|
|||||||
| Right
|
| Right
|
||||||
| Enter
|
| Enter
|
||||||
| Space
|
| Space
|
||||||
|
| Backspace
|
||||||
|
| Tab
|
||||||
| ESC
|
| ESC
|
||||||
| Letter_C
|
| Letter_C
|
||||||
| Letter_N
|
| Letter_N
|
||||||
@ -91,6 +93,12 @@ intToKeyCode code =
|
|||||||
32 ->
|
32 ->
|
||||||
Just Space
|
Just Space
|
||||||
|
|
||||||
|
8 ->
|
||||||
|
Just Backspace
|
||||||
|
|
||||||
|
9 ->
|
||||||
|
Just Tab
|
||||||
|
|
||||||
27 ->
|
27 ->
|
||||||
Just ESC
|
Just ESC
|
||||||
|
|
||||||
|
@ -34,7 +34,10 @@ field shows completion proposals from all contacts in your address
|
|||||||
book (from organizations and persons). Choose an address by pressing
|
book (from organizations and persons). Choose an address by pressing
|
||||||
*Enter* or by clicking a proposal from the list. The proposal list can
|
*Enter* or by clicking a proposal from the list. The proposal list can
|
||||||
be iterated by the *Up* and *Down* arrows. You can type in any
|
be iterated by the *Up* and *Down* arrows. You can type in any
|
||||||
address, of course, it doesn't need to match a proposal.
|
address, of course, it doesn't need to match a proposal. If you type
|
||||||
|
in an arbitrary address, hit *Enter* or *Space* in order to add the
|
||||||
|
current address. You can hit *Backspace* two times to remove the last
|
||||||
|
e-mail address.
|
||||||
|
|
||||||
If you have multiple mail settings defined, you can choose in the top
|
If you have multiple mail settings defined, you can choose in the top
|
||||||
dropdown which account to use for sending.
|
dropdown which account to use for sending.
|
||||||
|
@ -113,6 +113,12 @@ to copy it.
|
|||||||
|
|
||||||
{{ figure(file="share-03.png") }}
|
{{ figure(file="share-03.png") }}
|
||||||
|
|
||||||
|
When typing in an e-mail address, there are completion proposals
|
||||||
|
provided from your address book. If you type in an arbitrary address
|
||||||
|
(not in the proposals), hit *Enter* or *Space* in order to add the
|
||||||
|
current address. You can hit *Backspace* two times to remove the last
|
||||||
|
e-mail address.
|
||||||
|
|
||||||
The new share can now be found in *Collective Profile -> Shares*.
|
The new share can now be found in *Collective Profile -> Shares*.
|
||||||
Clicking *Done* brings you back to the search results.
|
Clicking *Done* brings you back to the search results.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user