mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 10:28:27 +00:00
Add websockets and notify frontend when an item is processed
This commit is contained in:
@ -190,6 +190,7 @@ type Msg
|
||||
| SetLanguage UiLanguage
|
||||
| ClientSettingsSaveResp UiSettings (Result Http.Error BasicResult)
|
||||
| ReceiveBrowserSettings StoredUiSettings
|
||||
| ReceiveWsMessage String
|
||||
|
||||
|
||||
defaultPage : Flags -> Page
|
||||
|
@ -308,6 +308,13 @@ updateWithSub msg model =
|
||||
in
|
||||
updateUserSettings texts lm model
|
||||
|
||||
ReceiveWsMessage data ->
|
||||
let
|
||||
_ =
|
||||
Debug.log "WS-msg" data
|
||||
in
|
||||
( model, Cmd.none, Sub.none )
|
||||
|
||||
|
||||
applyClientSettings : Messages -> Model -> UiSettings -> ( Model, Cmd Msg, Sub Msg )
|
||||
applyClientSettings texts model settings =
|
||||
|
@ -93,4 +93,5 @@ subscriptions model =
|
||||
Sub.batch
|
||||
[ model.subs
|
||||
, Ports.receiveUiSettings ReceiveBrowserSettings
|
||||
, Ports.receiveWsMessage ReceiveWsMessage
|
||||
]
|
||||
|
@ -11,6 +11,7 @@ port module Ports exposing
|
||||
, printElement
|
||||
, receiveCheckQueryResult
|
||||
, receiveUiSettings
|
||||
, receiveWsMessage
|
||||
, removeAccount
|
||||
, requestUiSettings
|
||||
, setAccount
|
||||
@ -55,6 +56,15 @@ and calls the print dialog.
|
||||
port printElement : String -> Cmd msg
|
||||
|
||||
|
||||
{-| Receives messages from the websocket.
|
||||
-}
|
||||
port receiveWsMessage : (String -> msg) -> Sub msg
|
||||
|
||||
|
||||
|
||||
--- Higher level functions based on ports
|
||||
|
||||
|
||||
setUiTheme : UiTheme -> Cmd msg
|
||||
setUiTheme theme =
|
||||
internalSetUiTheme (Data.UiTheme.toString theme)
|
||||
|
@ -135,3 +135,13 @@ elmApp.ports.printElement.subscribe(function(id) {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var socket = new WebSocket('ws://localhost:7880/api/v1/sec/ws');
|
||||
socket.addEventListener("message", function(event) {
|
||||
if (event.data != "keep-alive" && event.data) {
|
||||
elmApp.ports.receiveWsMessage.send(event.data);
|
||||
}
|
||||
});
|
||||
// elmApp.ports.sendWsMessage.subscribe(function(msg) {
|
||||
// socket.send(msg);
|
||||
// });
|
||||
|
Reference in New Issue
Block a user