mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-06 15:15:58 +00:00
Use powersearch input element in share form
This commit is contained in:
parent
fe77f7245a
commit
40aa2d4102
@ -478,14 +478,14 @@ updateUserSettings lmsg model =
|
|||||||
updateCollSettings : Page.CollectiveSettings.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
updateCollSettings : Page.CollectiveSettings.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||||
updateCollSettings lmsg model =
|
updateCollSettings lmsg model =
|
||||||
let
|
let
|
||||||
( lm, lc ) =
|
( lm, lc, ls ) =
|
||||||
Page.CollectiveSettings.Update.update model.flags
|
Page.CollectiveSettings.Update.update model.flags
|
||||||
lmsg
|
lmsg
|
||||||
model.collSettingsModel
|
model.collSettingsModel
|
||||||
in
|
in
|
||||||
( { model | collSettingsModel = lm }
|
( { model | collSettingsModel = lm }
|
||||||
, Cmd.map CollSettingsMsg lc
|
, Cmd.map CollSettingsMsg lc
|
||||||
, Sub.none
|
, Sub.map CollSettingsMsg ls
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -153,6 +153,7 @@ attachHeader texts settings model _ attach =
|
|||||||
[ href "#"
|
[ href "#"
|
||||||
, onClick ToggleAttachMenu
|
, onClick ToggleAttachMenu
|
||||||
, class S.secondaryBasicButton
|
, class S.secondaryBasicButton
|
||||||
|
, class "mr-2"
|
||||||
, classList
|
, classList
|
||||||
[ ( "bg-gray-200 dark:bg-bluegray-600 ", model.attachMenuOpen )
|
[ ( "bg-gray-200 dark:bg-bluegray-600 ", model.attachMenuOpen )
|
||||||
, ( "hidden", not multiAttach )
|
, ( "hidden", not multiAttach )
|
||||||
@ -160,12 +161,16 @@ attachHeader texts settings model _ attach =
|
|||||||
, ( "hidden sm:block", multiAttach && not mobile )
|
, ( "hidden sm:block", multiAttach && not mobile )
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
[ i [ class "fa fa-images font-thin" ] []
|
[ if model.attachMenuOpen then
|
||||||
|
i [ class "fa fa-chevron-up" ] []
|
||||||
|
|
||||||
|
else
|
||||||
|
i [ class "fa fa-chevron-down" ] []
|
||||||
]
|
]
|
||||||
in
|
in
|
||||||
div [ class "flex flex-col sm:flex-row items-center w-full" ]
|
div [ class "flex flex-col sm:flex-row items-center w-full" ]
|
||||||
[ attachSelectToggle False
|
[ attachSelectToggle False
|
||||||
, div [ class "ml-2 text-base font-bold flex-grow w-full text-center sm:text-left break-all" ]
|
, div [ class "text-base font-bold flex-grow w-full text-center sm:text-left break-all" ]
|
||||||
[ text attachName
|
[ text attachName
|
||||||
, text " ("
|
, text " ("
|
||||||
, text (Util.Size.bytesReadable Util.Size.B (toFloat attach.size))
|
, text (Util.Size.bytesReadable Util.Size.B (toFloat attach.size))
|
||||||
|
@ -11,6 +11,8 @@ module Comp.PowerSearchInput exposing
|
|||||||
, Msg
|
, Msg
|
||||||
, ViewSettings
|
, ViewSettings
|
||||||
, init
|
, init
|
||||||
|
, isValid
|
||||||
|
, setSearchString
|
||||||
, update
|
, update
|
||||||
, viewInput
|
, viewInput
|
||||||
, viewResult
|
, viewResult
|
||||||
@ -43,6 +45,11 @@ init =
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
isValid : Model -> Bool
|
||||||
|
isValid model =
|
||||||
|
model.input /= Nothing && model.result.success
|
||||||
|
|
||||||
|
|
||||||
type Msg
|
type Msg
|
||||||
= SetSearch String
|
= SetSearch String
|
||||||
| KeyUpMsg (Maybe KeyCode)
|
| KeyUpMsg (Maybe KeyCode)
|
||||||
@ -63,6 +70,11 @@ type alias Result =
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
setSearchString : String -> Msg
|
||||||
|
setSearchString q =
|
||||||
|
SetSearch q
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- Update
|
--- Update
|
||||||
|
|
||||||
|
@ -108,6 +108,7 @@ type Outcome
|
|||||||
type alias UpdateResult =
|
type alias UpdateResult =
|
||||||
{ model : Model
|
{ model : Model
|
||||||
, cmd : Cmd Msg
|
, cmd : Cmd Msg
|
||||||
|
, sub : Sub Msg
|
||||||
, outcome : Outcome
|
, outcome : Outcome
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,16 +119,18 @@ update flags msg model =
|
|||||||
CancelPublish ->
|
CancelPublish ->
|
||||||
{ model = model
|
{ model = model
|
||||||
, cmd = Cmd.none
|
, cmd = Cmd.none
|
||||||
|
, sub = Sub.none
|
||||||
, outcome = OutcomeDone
|
, outcome = OutcomeDone
|
||||||
}
|
}
|
||||||
|
|
||||||
FormMsg lm ->
|
FormMsg lm ->
|
||||||
let
|
let
|
||||||
( fm, fc ) =
|
( fm, fc, fs ) =
|
||||||
Comp.ShareForm.update flags lm model.formModel
|
Comp.ShareForm.update flags lm model.formModel
|
||||||
in
|
in
|
||||||
{ model = { model | formModel = fm }
|
{ model = { model | formModel = fm }
|
||||||
, cmd = Cmd.map FormMsg fc
|
, cmd = Cmd.map FormMsg fc
|
||||||
|
, sub = Sub.map FormMsg fs
|
||||||
, outcome = OutcomeInProgress
|
, outcome = OutcomeInProgress
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,12 +139,14 @@ update flags msg model =
|
|||||||
Just ( _, data ) ->
|
Just ( _, data ) ->
|
||||||
{ model = { model | loading = True }
|
{ model = { model | loading = True }
|
||||||
, cmd = Api.addShare flags data PublishResp
|
, cmd = Api.addShare flags data PublishResp
|
||||||
|
, sub = Sub.none
|
||||||
, outcome = OutcomeInProgress
|
, outcome = OutcomeInProgress
|
||||||
}
|
}
|
||||||
|
|
||||||
Nothing ->
|
Nothing ->
|
||||||
{ model = { model | formError = FormErrorInvalid }
|
{ model = { model | formError = FormErrorInvalid }
|
||||||
, cmd = Cmd.none
|
, cmd = Cmd.none
|
||||||
|
, sub = Sub.none
|
||||||
, outcome = OutcomeInProgress
|
, outcome = OutcomeInProgress
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -149,18 +154,21 @@ update flags msg model =
|
|||||||
if res.success then
|
if res.success then
|
||||||
{ model = model
|
{ model = model
|
||||||
, cmd = Api.getShare flags res.id GetShareResp
|
, cmd = Api.getShare flags res.id GetShareResp
|
||||||
|
, sub = Sub.none
|
||||||
, outcome = OutcomeInProgress
|
, outcome = OutcomeInProgress
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{ model = { model | formError = FormErrorSubmit res.message, loading = False }
|
{ model = { model | formError = FormErrorSubmit res.message, loading = False }
|
||||||
, cmd = Cmd.none
|
, cmd = Cmd.none
|
||||||
|
, sub = Sub.none
|
||||||
, outcome = OutcomeInProgress
|
, outcome = OutcomeInProgress
|
||||||
}
|
}
|
||||||
|
|
||||||
PublishResp (Err err) ->
|
PublishResp (Err err) ->
|
||||||
{ model = { model | formError = FormErrorHttp err, loading = False }
|
{ model = { model | formError = FormErrorHttp err, loading = False }
|
||||||
, cmd = Cmd.none
|
, cmd = Cmd.none
|
||||||
|
, sub = Sub.none
|
||||||
, outcome = OutcomeInProgress
|
, outcome = OutcomeInProgress
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,12 +180,14 @@ update flags msg model =
|
|||||||
, viewMode = ViewModeInfo share
|
, viewMode = ViewModeInfo share
|
||||||
}
|
}
|
||||||
, cmd = Ports.initClipboard (Comp.ShareView.clipboardData share)
|
, cmd = Ports.initClipboard (Comp.ShareView.clipboardData share)
|
||||||
|
, sub = Sub.none
|
||||||
, outcome = OutcomeInProgress
|
, outcome = OutcomeInProgress
|
||||||
}
|
}
|
||||||
|
|
||||||
GetShareResp (Err err) ->
|
GetShareResp (Err err) ->
|
||||||
{ model = { model | formError = FormErrorHttp err, loading = False }
|
{ model = { model | formError = FormErrorHttp err, loading = False }
|
||||||
, cmd = Cmd.none
|
, cmd = Cmd.none
|
||||||
|
, sub = Sub.none
|
||||||
, outcome = OutcomeInProgress
|
, outcome = OutcomeInProgress
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ import Api.Model.ShareDetail exposing (ShareDetail)
|
|||||||
import Comp.Basic as B
|
import Comp.Basic as B
|
||||||
import Comp.DatePicker
|
import Comp.DatePicker
|
||||||
import Comp.PasswordInput
|
import Comp.PasswordInput
|
||||||
|
import Comp.PowerSearchInput
|
||||||
import Data.Flags exposing (Flags)
|
import Data.Flags exposing (Flags)
|
||||||
import DatePicker exposing (DatePicker)
|
import DatePicker exposing (DatePicker)
|
||||||
import Html exposing (..)
|
import Html exposing (..)
|
||||||
@ -25,7 +26,7 @@ import Util.Maybe
|
|||||||
type alias Model =
|
type alias Model =
|
||||||
{ share : ShareDetail
|
{ share : ShareDetail
|
||||||
, name : Maybe String
|
, name : Maybe String
|
||||||
, query : String
|
, queryModel : Comp.PowerSearchInput.Model
|
||||||
, enabled : Bool
|
, enabled : Bool
|
||||||
, passwordModel : Comp.PasswordInput.Model
|
, passwordModel : Comp.PasswordInput.Model
|
||||||
, password : Maybe String
|
, password : Maybe String
|
||||||
@ -41,10 +42,15 @@ initQuery q =
|
|||||||
let
|
let
|
||||||
( dp, dpc ) =
|
( dp, dpc ) =
|
||||||
Comp.DatePicker.init
|
Comp.DatePicker.init
|
||||||
|
|
||||||
|
res =
|
||||||
|
Comp.PowerSearchInput.update
|
||||||
|
(Comp.PowerSearchInput.setSearchString q)
|
||||||
|
Comp.PowerSearchInput.init
|
||||||
in
|
in
|
||||||
( { share = Api.Model.ShareDetail.empty
|
( { share = Api.Model.ShareDetail.empty
|
||||||
, name = Nothing
|
, name = Nothing
|
||||||
, query = q
|
, queryModel = res.model
|
||||||
, enabled = True
|
, enabled = True
|
||||||
, passwordModel = Comp.PasswordInput.init
|
, passwordModel = Comp.PasswordInput.init
|
||||||
, password = Nothing
|
, password = Nothing
|
||||||
@ -53,7 +59,10 @@ initQuery q =
|
|||||||
, untilModel = dp
|
, untilModel = dp
|
||||||
, untilDate = Nothing
|
, untilDate = Nothing
|
||||||
}
|
}
|
||||||
, Cmd.map UntilDateMsg dpc
|
, Cmd.batch
|
||||||
|
[ Cmd.map UntilDateMsg dpc
|
||||||
|
, Cmd.map QueryMsg res.cmd
|
||||||
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -64,17 +73,19 @@ init =
|
|||||||
|
|
||||||
isValid : Model -> Bool
|
isValid : Model -> Bool
|
||||||
isValid model =
|
isValid model =
|
||||||
model.query /= "" && model.untilDate /= Nothing
|
Comp.PowerSearchInput.isValid model.queryModel
|
||||||
|
&& model.untilDate
|
||||||
|
/= Nothing
|
||||||
|
|
||||||
|
|
||||||
type Msg
|
type Msg
|
||||||
= SetName String
|
= SetName String
|
||||||
| SetQuery String
|
|
||||||
| SetShare ShareDetail
|
| SetShare ShareDetail
|
||||||
| ToggleEnabled
|
| ToggleEnabled
|
||||||
| ToggleClearPassword
|
| ToggleClearPassword
|
||||||
| PasswordMsg Comp.PasswordInput.Msg
|
| PasswordMsg Comp.PasswordInput.Msg
|
||||||
| UntilDateMsg Comp.DatePicker.Msg
|
| UntilDateMsg Comp.DatePicker.Msg
|
||||||
|
| QueryMsg Comp.PowerSearchInput.Msg
|
||||||
|
|
||||||
|
|
||||||
setShare : ShareDetail -> Msg
|
setShare : ShareDetail -> Msg
|
||||||
@ -88,7 +99,9 @@ getShare model =
|
|||||||
Just
|
Just
|
||||||
( model.share.id
|
( model.share.id
|
||||||
, { name = model.name
|
, { name = model.name
|
||||||
, query = model.query
|
, query =
|
||||||
|
model.queryModel.input
|
||||||
|
|> Maybe.withDefault ""
|
||||||
, enabled = model.enabled
|
, enabled = model.enabled
|
||||||
, password = model.password
|
, password = model.password
|
||||||
, removePassword =
|
, removePassword =
|
||||||
@ -105,14 +118,20 @@ getShare model =
|
|||||||
Nothing
|
Nothing
|
||||||
|
|
||||||
|
|
||||||
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
update : Flags -> Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||||
update _ msg model =
|
update _ msg model =
|
||||||
case msg of
|
case msg of
|
||||||
SetShare s ->
|
SetShare s ->
|
||||||
|
let
|
||||||
|
res =
|
||||||
|
Comp.PowerSearchInput.update
|
||||||
|
(Comp.PowerSearchInput.setSearchString s.query)
|
||||||
|
model.queryModel
|
||||||
|
in
|
||||||
( { model
|
( { model
|
||||||
| share = s
|
| share = s
|
||||||
, name = s.name
|
, name = s.name
|
||||||
, query = s.query
|
, queryModel = res.model
|
||||||
, enabled = s.enabled
|
, enabled = s.enabled
|
||||||
, password = Nothing
|
, password = Nothing
|
||||||
, passwordSet = s.password
|
, passwordSet = s.password
|
||||||
@ -124,20 +143,18 @@ update _ msg model =
|
|||||||
else
|
else
|
||||||
Nothing
|
Nothing
|
||||||
}
|
}
|
||||||
, Cmd.none
|
, Cmd.map QueryMsg res.cmd
|
||||||
|
, Sub.map QueryMsg res.subs
|
||||||
)
|
)
|
||||||
|
|
||||||
SetName n ->
|
SetName n ->
|
||||||
( { model | name = Util.Maybe.fromString n }, Cmd.none )
|
( { model | name = Util.Maybe.fromString n }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
SetQuery n ->
|
|
||||||
( { model | query = n }, Cmd.none )
|
|
||||||
|
|
||||||
ToggleEnabled ->
|
ToggleEnabled ->
|
||||||
( { model | enabled = not model.enabled }, Cmd.none )
|
( { model | enabled = not model.enabled }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
ToggleClearPassword ->
|
ToggleClearPassword ->
|
||||||
( { model | clearPassword = not model.clearPassword }, Cmd.none )
|
( { model | clearPassword = not model.clearPassword }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
PasswordMsg lm ->
|
PasswordMsg lm ->
|
||||||
let
|
let
|
||||||
@ -149,6 +166,7 @@ update _ msg model =
|
|||||||
, password = pw
|
, password = pw
|
||||||
}
|
}
|
||||||
, Cmd.none
|
, Cmd.none
|
||||||
|
, Sub.none
|
||||||
)
|
)
|
||||||
|
|
||||||
UntilDateMsg lm ->
|
UntilDateMsg lm ->
|
||||||
@ -166,6 +184,17 @@ update _ msg model =
|
|||||||
in
|
in
|
||||||
( { model | untilModel = dp, untilDate = nextDate }
|
( { model | untilModel = dp, untilDate = nextDate }
|
||||||
, Cmd.none
|
, Cmd.none
|
||||||
|
, Sub.none
|
||||||
|
)
|
||||||
|
|
||||||
|
QueryMsg lm ->
|
||||||
|
let
|
||||||
|
res =
|
||||||
|
Comp.PowerSearchInput.update lm model.queryModel
|
||||||
|
in
|
||||||
|
( { model | queryModel = res.model }
|
||||||
|
, Cmd.map QueryMsg res.cmd
|
||||||
|
, Sub.map QueryMsg res.subs
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -175,6 +204,21 @@ update _ msg model =
|
|||||||
|
|
||||||
view : Texts -> Model -> Html Msg
|
view : Texts -> Model -> Html Msg
|
||||||
view texts model =
|
view texts model =
|
||||||
|
let
|
||||||
|
queryInput =
|
||||||
|
div
|
||||||
|
[ class "relative flex flex-grow flex-row" ]
|
||||||
|
[ Html.map QueryMsg
|
||||||
|
(Comp.PowerSearchInput.viewInput
|
||||||
|
{ placeholder = texts.queryLabel
|
||||||
|
, extraAttrs = []
|
||||||
|
}
|
||||||
|
model.queryModel
|
||||||
|
)
|
||||||
|
, Html.map QueryMsg
|
||||||
|
(Comp.PowerSearchInput.viewResult [] model.queryModel)
|
||||||
|
]
|
||||||
|
in
|
||||||
div
|
div
|
||||||
[ class "flex flex-col" ]
|
[ class "flex flex-col" ]
|
||||||
[ div [ class "mb-4" ]
|
[ div [ class "mb-4" ]
|
||||||
@ -202,20 +246,7 @@ view texts model =
|
|||||||
[ text texts.queryLabel
|
[ text texts.queryLabel
|
||||||
, B.inputRequired
|
, B.inputRequired
|
||||||
]
|
]
|
||||||
, input
|
, queryInput
|
||||||
[ type_ "text"
|
|
||||||
, onInput SetQuery
|
|
||||||
, placeholder texts.queryLabel
|
|
||||||
, value model.query
|
|
||||||
, id "sharequery"
|
|
||||||
, class S.textInput
|
|
||||||
, classList
|
|
||||||
[ ( S.inputErrorBorder
|
|
||||||
, model.query == ""
|
|
||||||
)
|
|
||||||
]
|
|
||||||
]
|
|
||||||
[]
|
|
||||||
]
|
]
|
||||||
, div [ class "mb-4" ]
|
, div [ class "mb-4" ]
|
||||||
[ label
|
[ label
|
||||||
|
@ -98,7 +98,7 @@ loadShares =
|
|||||||
--- update
|
--- update
|
||||||
|
|
||||||
|
|
||||||
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
update : Flags -> Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||||
update flags msg model =
|
update flags msg model =
|
||||||
case msg of
|
case msg of
|
||||||
InitNewShare ->
|
InitNewShare ->
|
||||||
@ -118,14 +118,18 @@ update flags msg model =
|
|||||||
|
|
||||||
else
|
else
|
||||||
Cmd.none
|
Cmd.none
|
||||||
|
, Sub.none
|
||||||
)
|
)
|
||||||
|
|
||||||
FormMsg lm ->
|
FormMsg lm ->
|
||||||
let
|
let
|
||||||
( fm, fc ) =
|
( fm, fc, fs ) =
|
||||||
Comp.ShareForm.update flags lm model.formModel
|
Comp.ShareForm.update flags lm model.formModel
|
||||||
in
|
in
|
||||||
( { model | formModel = fm }, Cmd.map FormMsg fc )
|
( { model | formModel = fm, formError = FormErrorNone }
|
||||||
|
, Cmd.map FormMsg fc
|
||||||
|
, Sub.map FormMsg fs
|
||||||
|
)
|
||||||
|
|
||||||
TableMsg lm ->
|
TableMsg lm ->
|
||||||
let
|
let
|
||||||
@ -137,75 +141,79 @@ update flags msg model =
|
|||||||
setShare share flags model
|
setShare share flags model
|
||||||
|
|
||||||
RequestDelete ->
|
RequestDelete ->
|
||||||
( { model | deleteConfirm = DeleteConfirmOn }, Cmd.none )
|
( { model | deleteConfirm = DeleteConfirmOn }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
CancelDelete ->
|
CancelDelete ->
|
||||||
( { model | deleteConfirm = DeleteConfirmOff }, Cmd.none )
|
( { model | deleteConfirm = DeleteConfirmOff }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
DeleteShareNow id ->
|
DeleteShareNow id ->
|
||||||
( { model | deleteConfirm = DeleteConfirmOff, loading = True }
|
( { model | deleteConfirm = DeleteConfirmOff, loading = True }
|
||||||
, Api.deleteShare flags id DeleteShareResp
|
, Api.deleteShare flags id DeleteShareResp
|
||||||
|
, Sub.none
|
||||||
)
|
)
|
||||||
|
|
||||||
LoadShares ->
|
LoadShares ->
|
||||||
( { model | loading = True }, Api.getShares flags LoadSharesResp )
|
( { model | loading = True }, Api.getShares flags LoadSharesResp, Sub.none )
|
||||||
|
|
||||||
LoadSharesResp (Ok list) ->
|
LoadSharesResp (Ok list) ->
|
||||||
( { model | loading = False, shares = list.items, formError = FormErrorNone }, Cmd.none )
|
( { model | loading = False, shares = list.items, formError = FormErrorNone }
|
||||||
|
, Cmd.none
|
||||||
|
, Sub.none
|
||||||
|
)
|
||||||
|
|
||||||
LoadSharesResp (Err err) ->
|
LoadSharesResp (Err err) ->
|
||||||
( { model | loading = False, formError = FormErrorHttp err }, Cmd.none )
|
( { model | loading = False, formError = FormErrorHttp err }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
Submit ->
|
Submit ->
|
||||||
case Comp.ShareForm.getShare model.formModel of
|
case Comp.ShareForm.getShare model.formModel of
|
||||||
Just ( id, data ) ->
|
Just ( id, data ) ->
|
||||||
if id == "" then
|
if id == "" then
|
||||||
( { model | loading = True }, Api.addShare flags data AddShareResp )
|
( { model | loading = True }, Api.addShare flags data AddShareResp, Sub.none )
|
||||||
|
|
||||||
else
|
else
|
||||||
( { model | loading = True }, Api.updateShare flags id data UpdateShareResp )
|
( { model | loading = True }, Api.updateShare flags id data UpdateShareResp, Sub.none )
|
||||||
|
|
||||||
Nothing ->
|
Nothing ->
|
||||||
( { model | formError = FormErrorInvalid }, Cmd.none )
|
( { model | formError = FormErrorInvalid }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
AddShareResp (Ok res) ->
|
AddShareResp (Ok res) ->
|
||||||
if res.success then
|
if res.success then
|
||||||
( model, Api.getShare flags res.id GetShareResp )
|
( model, Api.getShare flags res.id GetShareResp, Sub.none )
|
||||||
|
|
||||||
else
|
else
|
||||||
( { model | loading = False, formError = FormErrorSubmit res.message }, Cmd.none )
|
( { model | loading = False, formError = FormErrorSubmit res.message }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
AddShareResp (Err err) ->
|
AddShareResp (Err err) ->
|
||||||
( { model | loading = False, formError = FormErrorHttp err }, Cmd.none )
|
( { model | loading = False, formError = FormErrorHttp err }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
UpdateShareResp (Ok res) ->
|
UpdateShareResp (Ok res) ->
|
||||||
if res.success then
|
if res.success then
|
||||||
( model, Api.getShare flags model.formModel.share.id GetShareResp )
|
( model, Api.getShare flags model.formModel.share.id GetShareResp, Sub.none )
|
||||||
|
|
||||||
else
|
else
|
||||||
( { model | loading = False, formError = FormErrorSubmit res.message }, Cmd.none )
|
( { model | loading = False, formError = FormErrorSubmit res.message }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
UpdateShareResp (Err err) ->
|
UpdateShareResp (Err err) ->
|
||||||
( { model | loading = False, formError = FormErrorHttp err }, Cmd.none )
|
( { model | loading = False, formError = FormErrorHttp err }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
GetShareResp (Ok share) ->
|
GetShareResp (Ok share) ->
|
||||||
setShare share flags model
|
setShare share flags model
|
||||||
|
|
||||||
GetShareResp (Err err) ->
|
GetShareResp (Err err) ->
|
||||||
( { model | formError = FormErrorHttp err }, Cmd.none )
|
( { model | formError = FormErrorHttp err }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
DeleteShareResp (Ok res) ->
|
DeleteShareResp (Ok res) ->
|
||||||
if res.success then
|
if res.success then
|
||||||
update flags (SetViewMode Table) { model | loading = False }
|
update flags (SetViewMode Table) { model | loading = False }
|
||||||
|
|
||||||
else
|
else
|
||||||
( { model | formError = FormErrorSubmit res.message, loading = False }, Cmd.none )
|
( { model | formError = FormErrorSubmit res.message, loading = False }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
DeleteShareResp (Err err) ->
|
DeleteShareResp (Err err) ->
|
||||||
( { model | formError = FormErrorHttp err, loading = False }, Cmd.none )
|
( { model | formError = FormErrorHttp err, loading = False }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
|
|
||||||
setShare : ShareDetail -> Flags -> Model -> ( Model, Cmd Msg )
|
setShare : ShareDetail -> Flags -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||||
setShare share flags model =
|
setShare share flags model =
|
||||||
let
|
let
|
||||||
nextModel =
|
nextModel =
|
||||||
@ -214,10 +222,10 @@ setShare share flags model =
|
|||||||
initClipboard =
|
initClipboard =
|
||||||
Ports.initClipboard (Comp.ShareView.clipboardData share)
|
Ports.initClipboard (Comp.ShareView.clipboardData share)
|
||||||
|
|
||||||
( nm, nc ) =
|
( nm, nc, ns ) =
|
||||||
update flags (FormMsg <| Comp.ShareForm.setShare share) nextModel
|
update flags (FormMsg <| Comp.ShareForm.setShare share) nextModel
|
||||||
in
|
in
|
||||||
( nm, Cmd.batch [ initClipboard, nc ] )
|
( nm, Cmd.batch [ initClipboard, nc ], ns )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ import Data.Flags exposing (Flags)
|
|||||||
import Page.CollectiveSettings.Data exposing (..)
|
import Page.CollectiveSettings.Data exposing (..)
|
||||||
|
|
||||||
|
|
||||||
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
update : Flags -> Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||||
update flags msg model =
|
update flags msg model =
|
||||||
case msg of
|
case msg of
|
||||||
SetTab t ->
|
SetTab t ->
|
||||||
@ -45,21 +45,21 @@ update flags msg model =
|
|||||||
( m2, c2 ) =
|
( m2, c2 ) =
|
||||||
Comp.SourceManage.update flags m model.sourceModel
|
Comp.SourceManage.update flags m model.sourceModel
|
||||||
in
|
in
|
||||||
( { model | sourceModel = m2 }, Cmd.map SourceMsg c2 )
|
( { model | sourceModel = m2 }, Cmd.map SourceMsg c2, Sub.none )
|
||||||
|
|
||||||
ShareMsg lm ->
|
ShareMsg lm ->
|
||||||
let
|
let
|
||||||
( sm, sc ) =
|
( sm, sc, ss ) =
|
||||||
Comp.ShareManage.update flags lm model.shareModel
|
Comp.ShareManage.update flags lm model.shareModel
|
||||||
in
|
in
|
||||||
( { model | shareModel = sm }, Cmd.map ShareMsg sc )
|
( { model | shareModel = sm }, Cmd.map ShareMsg sc, Sub.map ShareMsg ss )
|
||||||
|
|
||||||
UserMsg m ->
|
UserMsg m ->
|
||||||
let
|
let
|
||||||
( m2, c2 ) =
|
( m2, c2 ) =
|
||||||
Comp.UserManage.update flags m model.userModel
|
Comp.UserManage.update flags m model.userModel
|
||||||
in
|
in
|
||||||
( { model | userModel = m2 }, Cmd.map UserMsg c2 )
|
( { model | userModel = m2 }, Cmd.map UserMsg c2, Sub.none )
|
||||||
|
|
||||||
SettingsFormMsg m ->
|
SettingsFormMsg m ->
|
||||||
let
|
let
|
||||||
@ -76,6 +76,7 @@ update flags msg model =
|
|||||||
in
|
in
|
||||||
( { model | settingsModel = m2, formState = InitialState }
|
( { model | settingsModel = m2, formState = InitialState }
|
||||||
, Cmd.batch [ cmd, Cmd.map SettingsFormMsg c2 ]
|
, Cmd.batch [ cmd, Cmd.map SettingsFormMsg c2 ]
|
||||||
|
, Sub.none
|
||||||
)
|
)
|
||||||
|
|
||||||
Init ->
|
Init ->
|
||||||
@ -84,13 +85,14 @@ update flags msg model =
|
|||||||
[ Api.getInsights flags GetInsightsResp
|
[ Api.getInsights flags GetInsightsResp
|
||||||
, Api.getCollectiveSettings flags CollectiveSettingsResp
|
, Api.getCollectiveSettings flags CollectiveSettingsResp
|
||||||
]
|
]
|
||||||
|
, Sub.none
|
||||||
)
|
)
|
||||||
|
|
||||||
GetInsightsResp (Ok data) ->
|
GetInsightsResp (Ok data) ->
|
||||||
( { model | insights = data }, Cmd.none )
|
( { model | insights = data }, Cmd.none, Sub.none )
|
||||||
|
|
||||||
GetInsightsResp (Err _) ->
|
GetInsightsResp (Err _) ->
|
||||||
( model, Cmd.none )
|
( model, Cmd.none, Sub.none )
|
||||||
|
|
||||||
CollectiveSettingsResp (Ok data) ->
|
CollectiveSettingsResp (Ok data) ->
|
||||||
let
|
let
|
||||||
@ -99,10 +101,11 @@ update flags msg model =
|
|||||||
in
|
in
|
||||||
( { model | settingsModel = cm }
|
( { model | settingsModel = cm }
|
||||||
, Cmd.map SettingsFormMsg cc
|
, Cmd.map SettingsFormMsg cc
|
||||||
|
, Sub.none
|
||||||
)
|
)
|
||||||
|
|
||||||
CollectiveSettingsResp (Err _) ->
|
CollectiveSettingsResp (Err _) ->
|
||||||
( model, Cmd.none )
|
( model, Cmd.none, Sub.none )
|
||||||
|
|
||||||
SubmitResp (Ok res) ->
|
SubmitResp (Ok res) ->
|
||||||
( { model
|
( { model
|
||||||
@ -114,7 +117,8 @@ update flags msg model =
|
|||||||
SubmitFailed res.message
|
SubmitFailed res.message
|
||||||
}
|
}
|
||||||
, Cmd.none
|
, Cmd.none
|
||||||
|
, Sub.none
|
||||||
)
|
)
|
||||||
|
|
||||||
SubmitResp (Err err) ->
|
SubmitResp (Err err) ->
|
||||||
( { model | formState = SubmitError err }, Cmd.none )
|
( { model | formState = SubmitError err }, Cmd.none, Sub.none )
|
||||||
|
Loading…
x
Reference in New Issue
Block a user