mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-03-25 16:45:05 +00:00
commit
5c9f214f80
@ -160,7 +160,7 @@ checkPage flags page =
|
||||
defaultPage : Flags -> Page
|
||||
defaultPage flags =
|
||||
if isSignedIn flags then
|
||||
HomePage Nothing
|
||||
HomePage
|
||||
|
||||
else
|
||||
LoginPage Nothing
|
||||
|
@ -31,6 +31,7 @@ import Page.UserSettings.Data
|
||||
import Page.UserSettings.Update
|
||||
import Ports
|
||||
import Url
|
||||
import Util.Maybe
|
||||
import Util.Update
|
||||
|
||||
|
||||
@ -312,8 +313,8 @@ updateHome lmsg model =
|
||||
let
|
||||
mid =
|
||||
case model.page of
|
||||
HomePage x ->
|
||||
x
|
||||
HomePage ->
|
||||
Util.Maybe.fromString model.itemDetailModel.detail.item.id
|
||||
|
||||
_ ->
|
||||
Nothing
|
||||
@ -348,7 +349,7 @@ initPage model_ page =
|
||||
{ model_ | page = page }
|
||||
in
|
||||
case page of
|
||||
HomePage _ ->
|
||||
HomePage ->
|
||||
Util.Update.andThen2
|
||||
[ updateHome Page.Home.Data.Init
|
||||
, updateQueue Page.Queue.Data.StopRefresh
|
||||
|
@ -16,6 +16,7 @@ import Page.Queue.View
|
||||
import Page.Register.View
|
||||
import Page.Upload.View
|
||||
import Page.UserSettings.View
|
||||
import Util.Maybe
|
||||
|
||||
|
||||
view : Model -> Html Msg
|
||||
@ -65,7 +66,7 @@ defaultLayout model =
|
||||
[ div [ class "ui fluid container" ]
|
||||
[ a
|
||||
[ class "header item narrow-item"
|
||||
, Page.href (HomePage Nothing)
|
||||
, Page.href HomePage
|
||||
]
|
||||
[ img
|
||||
[ class "image"
|
||||
@ -84,7 +85,7 @@ defaultLayout model =
|
||||
, id "main-content"
|
||||
]
|
||||
[ case model.page of
|
||||
HomePage _ ->
|
||||
HomePage ->
|
||||
viewHome model
|
||||
|
||||
LoginPage _ ->
|
||||
@ -180,8 +181,8 @@ viewHome model =
|
||||
let
|
||||
mid =
|
||||
case model.page of
|
||||
HomePage x ->
|
||||
x
|
||||
HomePage ->
|
||||
Util.Maybe.fromString model.itemDetailModel.detail.item.id
|
||||
|
||||
_ ->
|
||||
Nothing
|
||||
@ -218,7 +219,7 @@ loginInfo model =
|
||||
]
|
||||
]
|
||||
[ menuEntry model
|
||||
(HomePage Nothing)
|
||||
HomePage
|
||||
[ img
|
||||
[ class "image icon"
|
||||
, src (model.flags.config.docspellAssetPath ++ "/img/logo-mc-96.png")
|
||||
|
@ -21,8 +21,8 @@ import Data.Items
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Html exposing (..)
|
||||
import Html.Attributes exposing (..)
|
||||
import Html.Events exposing (onClick)
|
||||
import Markdown
|
||||
import Page exposing (Page(..))
|
||||
import Util.ItemDragDrop as DD
|
||||
import Util.List
|
||||
import Util.String
|
||||
@ -37,7 +37,6 @@ type alias Model =
|
||||
type Msg
|
||||
= SetResults ItemLightList
|
||||
| AddResults ItemLightList
|
||||
| SelectItem ItemLight
|
||||
| ItemDDMsg DD.Msg
|
||||
|
||||
|
||||
@ -63,19 +62,18 @@ prevItem model id =
|
||||
--- Update
|
||||
|
||||
|
||||
update : Flags -> Msg -> Model -> ( Model, Cmd Msg, Maybe ItemLight )
|
||||
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
||||
update flags msg model =
|
||||
let
|
||||
res =
|
||||
updateDrag DD.init flags msg model
|
||||
in
|
||||
( res.model, res.cmd, res.selected )
|
||||
( res.model, res.cmd )
|
||||
|
||||
|
||||
type alias UpdateResult =
|
||||
{ model : Model
|
||||
, cmd : Cmd Msg
|
||||
, selected : Maybe ItemLight
|
||||
, dragModel : DD.Model
|
||||
}
|
||||
|
||||
@ -93,28 +91,25 @@ updateDrag dm _ msg model =
|
||||
newModel =
|
||||
{ model | results = list }
|
||||
in
|
||||
UpdateResult newModel Cmd.none Nothing dm
|
||||
UpdateResult newModel Cmd.none dm
|
||||
|
||||
AddResults list ->
|
||||
if list.groups == [] then
|
||||
UpdateResult model Cmd.none Nothing dm
|
||||
UpdateResult model Cmd.none dm
|
||||
|
||||
else
|
||||
let
|
||||
newModel =
|
||||
{ model | results = Data.Items.concat model.results list }
|
||||
in
|
||||
UpdateResult newModel Cmd.none Nothing dm
|
||||
|
||||
SelectItem item ->
|
||||
UpdateResult model Cmd.none (Just item) dm
|
||||
UpdateResult newModel Cmd.none dm
|
||||
|
||||
ItemDDMsg lm ->
|
||||
let
|
||||
ddd =
|
||||
DD.update lm dm
|
||||
in
|
||||
UpdateResult model Cmd.none Nothing ddd.model
|
||||
UpdateResult model Cmd.none ddd.model
|
||||
|
||||
|
||||
|
||||
@ -181,8 +176,7 @@ viewItem current settings item =
|
||||
, ( "current", current == Just item.id )
|
||||
]
|
||||
, id item.id
|
||||
, href "#"
|
||||
, onClick (SelectItem item)
|
||||
, Page.href (ItemDetailPage item.id)
|
||||
]
|
||||
++ DD.draggable ItemDDMsg item.id
|
||||
)
|
||||
|
@ -632,7 +632,7 @@ update key flags inav settings msg model =
|
||||
noSub ( model, Page.set key (ItemDetailPage id) )
|
||||
|
||||
Nothing ->
|
||||
noSub ( model, Page.set key (HomePage Nothing) )
|
||||
noSub ( model, Page.set key HomePage )
|
||||
|
||||
else
|
||||
noSub ( model, Cmd.none )
|
||||
|
@ -110,7 +110,7 @@ renderDetailMenu settings inav model =
|
||||
)
|
||||
]
|
||||
]
|
||||
[ a [ class "item", Page.href (HomePage (Just model.item.id)) ]
|
||||
[ a [ class "item", Page.href HomePage ]
|
||||
[ i [ class "arrow left icon" ] []
|
||||
]
|
||||
, a
|
||||
|
@ -11,7 +11,7 @@ import Data.UiSettings
|
||||
import Html exposing (..)
|
||||
import Html.Attributes exposing (..)
|
||||
import Html.Events exposing (..)
|
||||
import Page
|
||||
import Page exposing (Page(..))
|
||||
import Ports
|
||||
import Url exposing (Url)
|
||||
|
||||
@ -73,7 +73,16 @@ init flags url key =
|
||||
|
||||
viewDoc : Model -> Document Msg
|
||||
viewDoc model =
|
||||
{ title = model.flags.config.appName ++ ": " ++ Page.pageName model.page
|
||||
let
|
||||
title =
|
||||
case model.page of
|
||||
ItemDetailPage _ ->
|
||||
model.itemDetailModel.detail.item.name
|
||||
|
||||
_ ->
|
||||
Page.pageName model.page
|
||||
in
|
||||
{ title = model.flags.config.appName ++ ": " ++ title
|
||||
, body = [ view model ]
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ import Util.Maybe
|
||||
|
||||
|
||||
type Page
|
||||
= HomePage (Maybe String)
|
||||
= HomePage
|
||||
| LoginPage (Maybe Page)
|
||||
| ManageDataPage
|
||||
| CollectiveSettingPage
|
||||
@ -39,7 +39,7 @@ type Page
|
||||
isSecured : Page -> Bool
|
||||
isSecured page =
|
||||
case page of
|
||||
HomePage _ ->
|
||||
HomePage ->
|
||||
True
|
||||
|
||||
LoginPage _ ->
|
||||
@ -88,7 +88,7 @@ loginPage p =
|
||||
pageName : Page -> String
|
||||
pageName page =
|
||||
case page of
|
||||
HomePage _ ->
|
||||
HomePage ->
|
||||
"Home"
|
||||
|
||||
LoginPage _ ->
|
||||
@ -147,10 +147,7 @@ uploadId page =
|
||||
pageToString : Page -> String
|
||||
pageToString page =
|
||||
case page of
|
||||
HomePage (Just id) ->
|
||||
"/app/home?item=" ++ id
|
||||
|
||||
HomePage Nothing ->
|
||||
HomePage ->
|
||||
"/app/home"
|
||||
|
||||
LoginPage referer ->
|
||||
@ -232,8 +229,8 @@ parser =
|
||||
oneOf
|
||||
[ Parser.map HomePage
|
||||
(oneOf
|
||||
[ Parser.top <?> itemQuery
|
||||
, s pathPrefix </> s "home" <?> itemQuery
|
||||
[ Parser.top
|
||||
, s pathPrefix </> s "home"
|
||||
]
|
||||
)
|
||||
, Parser.map LoginPage (s pathPrefix </> s "login" <?> pageQuery)
|
||||
@ -271,8 +268,3 @@ pageQuery =
|
||||
in
|
||||
Query.string "r"
|
||||
|> Query.map parsePage
|
||||
|
||||
|
||||
itemQuery : Query.Parser (Maybe String)
|
||||
itemQuery =
|
||||
Query.string "item"
|
||||
|
@ -41,6 +41,7 @@ type alias Model =
|
||||
, searchTypeForm : SearchType
|
||||
, contentOnlySearch : Maybe String
|
||||
, dragDropData : DD.DragDropData
|
||||
, scrollToCard : Maybe String
|
||||
}
|
||||
|
||||
|
||||
@ -70,6 +71,7 @@ init flags =
|
||||
, contentOnlySearch = Nothing
|
||||
, dragDropData =
|
||||
DD.DragDropData DD.init Nothing
|
||||
, scrollToCard = Nothing
|
||||
}
|
||||
|
||||
|
||||
@ -98,7 +100,7 @@ type Msg
|
||||
| KeyUpMsg (Maybe KeyCode)
|
||||
| SetContentOnly String
|
||||
| ScrollResult (Result Dom.Error ())
|
||||
| ClearItemDetailId (Maybe String)
|
||||
| ClearItemDetailId
|
||||
|
||||
|
||||
type SearchType
|
||||
|
@ -82,21 +82,13 @@ update mId key flags settings msg model =
|
||||
flags
|
||||
m
|
||||
model.itemListModel
|
||||
|
||||
( cmd, id ) =
|
||||
case result.selected of
|
||||
Just item ->
|
||||
( Page.set key (ItemDetailPage item.id), Just item.id )
|
||||
|
||||
Nothing ->
|
||||
( Cmd.none, Nothing )
|
||||
in
|
||||
withSub
|
||||
( { model
|
||||
| itemListModel = result.model
|
||||
, dragDropData = DD.DragDropData result.dragModel Nothing
|
||||
}
|
||||
, Cmd.batch [ Cmd.map ItemCardListMsg result.cmd, cmd ]
|
||||
, Cmd.batch [ Cmd.map ItemCardListMsg result.cmd ]
|
||||
)
|
||||
|
||||
ItemSearchResp (Ok list) ->
|
||||
@ -251,18 +243,12 @@ update mId key flags settings msg model =
|
||||
ScrollResult _ ->
|
||||
let
|
||||
cmd =
|
||||
Process.sleep 800 |> Task.perform (always (ClearItemDetailId mId))
|
||||
Process.sleep 800 |> Task.perform (always ClearItemDetailId)
|
||||
in
|
||||
withSub ( model, cmd )
|
||||
|
||||
ClearItemDetailId id ->
|
||||
-- if user clicks quickly away (e.g. on another item), the
|
||||
-- deferred command should be ignored
|
||||
if mId == id then
|
||||
noSub ( model, Page.set key (HomePage Nothing) )
|
||||
|
||||
else
|
||||
noSub ( model, Cmd.none )
|
||||
ClearItemDetailId ->
|
||||
noSub ( { model | scrollToCard = Nothing }, Cmd.none )
|
||||
|
||||
|
||||
|
||||
@ -277,7 +263,10 @@ scrollToCard mId model =
|
||||
in
|
||||
case mId of
|
||||
Just id ->
|
||||
( model, Task.attempt ScrollResult (scroll id), Sub.none )
|
||||
( { model | scrollToCard = mId }
|
||||
, Task.attempt ScrollResult (scroll id)
|
||||
, Sub.none
|
||||
)
|
||||
|
||||
Nothing ->
|
||||
( model, Cmd.none, Sub.none )
|
||||
|
@ -82,7 +82,7 @@ view current flags settings model =
|
||||
]
|
||||
[ viewSearchBar flags model
|
||||
, Html.map ItemCardListMsg
|
||||
(Comp.ItemCardList.view current settings model.itemListModel)
|
||||
(Comp.ItemCardList.view model.scrollToCard settings model.itemListModel)
|
||||
]
|
||||
, div
|
||||
[ classList
|
||||
|
@ -25,7 +25,7 @@ update referrer flags msg model =
|
||||
AuthResp (Ok lr) ->
|
||||
let
|
||||
gotoRef =
|
||||
Maybe.withDefault (HomePage Nothing) referrer |> Page.goto
|
||||
Maybe.withDefault HomePage referrer |> Page.goto
|
||||
in
|
||||
if lr.success then
|
||||
( { model | result = Just lr, password = "" }, Cmd.batch [ setAccount lr, gotoRef ], Just lr )
|
||||
|
@ -77,7 +77,7 @@ renderSuccessMsg public _ =
|
||||
else
|
||||
p []
|
||||
[ text "Your files have been successfully uploaded. They are now being processed. Check the "
|
||||
, a [ class "ui link", Page.href (HomePage Nothing) ]
|
||||
, a [ class "ui link", Page.href HomePage ]
|
||||
[ text "Items page"
|
||||
]
|
||||
, text " later where the files will arrive eventually. Or go to the "
|
||||
|
Loading…
x
Reference in New Issue
Block a user