mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-08-05 02:24:52 +00:00
Share page skeleton
This commit is contained in:
@ -32,6 +32,7 @@ import Page.ManageData.Data
|
||||
import Page.NewInvite.Data
|
||||
import Page.Queue.Data
|
||||
import Page.Register.Data
|
||||
import Page.Share.Data
|
||||
import Page.Upload.Data
|
||||
import Page.UserSettings.Data
|
||||
import Url exposing (Url)
|
||||
@ -52,6 +53,7 @@ type alias Model =
|
||||
, uploadModel : Page.Upload.Data.Model
|
||||
, newInviteModel : Page.NewInvite.Data.Model
|
||||
, itemDetailModel : Page.ItemDetail.Data.Model
|
||||
, shareModel : Page.Share.Data.Model
|
||||
, navMenuOpen : Bool
|
||||
, userMenuOpen : Bool
|
||||
, subs : Sub Msg
|
||||
@ -85,6 +87,9 @@ init key url flags_ settings =
|
||||
( loginm, loginc ) =
|
||||
Page.Login.Data.init flags (Page.loginPageReferrer page)
|
||||
|
||||
( shm, shc ) =
|
||||
Page.Share.Data.init (Page.shareId page) flags
|
||||
|
||||
homeViewMode =
|
||||
if settings.searchMenuVisible then
|
||||
Page.Home.Data.SearchView
|
||||
@ -106,6 +111,7 @@ init key url flags_ settings =
|
||||
, uploadModel = Page.Upload.Data.emptyModel
|
||||
, newInviteModel = Page.NewInvite.Data.emptyModel
|
||||
, itemDetailModel = Page.ItemDetail.Data.emptyModel
|
||||
, shareModel = shm
|
||||
, navMenuOpen = False
|
||||
, userMenuOpen = False
|
||||
, subs = Sub.none
|
||||
@ -120,6 +126,7 @@ init key url flags_ settings =
|
||||
, Cmd.map ManageDataMsg mdc
|
||||
, Cmd.map CollSettingsMsg csc
|
||||
, Cmd.map LoginMsg loginc
|
||||
, Cmd.map ShareMsg shc
|
||||
]
|
||||
)
|
||||
|
||||
@ -162,6 +169,7 @@ type Msg
|
||||
| UploadMsg Page.Upload.Data.Msg
|
||||
| NewInviteMsg Page.NewInvite.Data.Msg
|
||||
| ItemDetailMsg Page.ItemDetail.Data.Msg
|
||||
| ShareMsg Page.Share.Data.Msg
|
||||
| Logout
|
||||
| LogoutResp (Result Http.Error ())
|
||||
| SessionCheckResp (Result Http.Error AuthResult)
|
||||
|
@ -34,6 +34,8 @@ import Page.Queue.Data
|
||||
import Page.Queue.Update
|
||||
import Page.Register.Data
|
||||
import Page.Register.Update
|
||||
import Page.Share.Data
|
||||
import Page.Share.Update
|
||||
import Page.Upload.Data
|
||||
import Page.Upload.Update
|
||||
import Page.UserSettings.Data
|
||||
@ -114,6 +116,9 @@ updateWithSub msg model =
|
||||
HomeMsg lm ->
|
||||
updateHome lm model
|
||||
|
||||
ShareMsg lm ->
|
||||
updateShare lm model
|
||||
|
||||
LoginMsg lm ->
|
||||
updateLogin lm model
|
||||
|
||||
@ -313,6 +318,23 @@ applyClientSettings model settings =
|
||||
{ model | uiSettings = settings }
|
||||
|
||||
|
||||
updateShare : Page.Share.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||
updateShare lmsg model =
|
||||
case Page.shareId model.page of
|
||||
Just id ->
|
||||
let
|
||||
result =
|
||||
Page.Share.Update.update model.flags id lmsg model.shareModel
|
||||
in
|
||||
( { model | shareModel = result.model }
|
||||
, Cmd.map ShareMsg result.cmd
|
||||
, Sub.map ShareMsg result.sub
|
||||
)
|
||||
|
||||
Nothing ->
|
||||
( model, Cmd.none, Sub.none )
|
||||
|
||||
|
||||
updateItemDetail : Page.ItemDetail.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||
updateItemDetail lmsg model =
|
||||
let
|
||||
@ -568,3 +590,6 @@ initPage model_ page =
|
||||
, updateQueue Page.Queue.Data.StopRefresh
|
||||
]
|
||||
model
|
||||
|
||||
SharePage _ ->
|
||||
( model, Cmd.none, Sub.none )
|
||||
|
@ -27,6 +27,7 @@ import Page.ManageData.View2 as ManageData
|
||||
import Page.NewInvite.View2 as NewInvite
|
||||
import Page.Queue.View2 as Queue
|
||||
import Page.Register.View2 as Register
|
||||
import Page.Share.View as Share
|
||||
import Page.Upload.View2 as Upload
|
||||
import Page.UserSettings.View2 as UserSettings
|
||||
import Styles as S
|
||||
@ -41,13 +42,9 @@ view model =
|
||||
|
||||
topNavbar : Model -> Html Msg
|
||||
topNavbar model =
|
||||
case model.flags.account of
|
||||
case Data.Flags.getAccount model.flags of
|
||||
Just acc ->
|
||||
if acc.success then
|
||||
topNavUser acc model
|
||||
|
||||
else
|
||||
topNavAnon model
|
||||
topNavUser acc model
|
||||
|
||||
Nothing ->
|
||||
topNavAnon model
|
||||
@ -86,7 +83,16 @@ topNavAnon model =
|
||||
[ id "top-nav"
|
||||
, class styleTopNav
|
||||
]
|
||||
[ headerNavItem model
|
||||
[ B.genericButton
|
||||
{ label = ""
|
||||
, icon = "fa fa-bars"
|
||||
, handler = onClick ToggleSidebar
|
||||
, disabled = not (Page.hasSidebar model.page)
|
||||
, attrs = [ href "#" ]
|
||||
, baseStyle = "font-bold inline-flex items-center px-4 py-2"
|
||||
, activeStyle = "hover:bg-blue-200 dark:hover:bg-bluegray-800 w-12"
|
||||
}
|
||||
, headerNavItem model
|
||||
, div [ class "flex flex-grow justify-end" ]
|
||||
[ langMenu model
|
||||
, a
|
||||
@ -157,6 +163,9 @@ mainContent model =
|
||||
|
||||
ItemDetailPage id ->
|
||||
viewItemDetail texts id model
|
||||
|
||||
SharePage id ->
|
||||
viewShare texts id model
|
||||
)
|
||||
|
||||
|
||||
@ -411,6 +420,24 @@ dropdownMenu =
|
||||
" absolute right-0 bg-white dark:bg-bluegray-800 border dark:border-bluegray-700 dark:text-bluegray-300 shadow-lg opacity-1 transition duration-200 min-w-max "
|
||||
|
||||
|
||||
viewShare : Messages -> String -> Model -> List (Html Msg)
|
||||
viewShare texts shareId model =
|
||||
[ Html.map ShareMsg
|
||||
(Share.viewSidebar texts.share
|
||||
model.sidebarVisible
|
||||
model.flags
|
||||
model.uiSettings
|
||||
model.shareModel
|
||||
)
|
||||
, Html.map ShareMsg
|
||||
(Share.viewContent texts.share
|
||||
model.flags
|
||||
model.uiSettings
|
||||
model.shareModel
|
||||
)
|
||||
]
|
||||
|
||||
|
||||
viewHome : Messages -> Model -> List (Html Msg)
|
||||
viewHome texts model =
|
||||
[ Html.map HomeMsg
|
||||
|
Reference in New Issue
Block a user