mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-09-11 15:46:54 +00:00
Add a qr-code for source urls
This commit is contained in:
9
elm.json
9
elm.json
@@ -21,15 +21,22 @@
|
|||||||
"elm-explorations/markdown": "1.0.0",
|
"elm-explorations/markdown": "1.0.0",
|
||||||
"justinmimbs/date": "3.1.2",
|
"justinmimbs/date": "3.1.2",
|
||||||
"norpan/elm-html5-drag-drop": "3.1.4",
|
"norpan/elm-html5-drag-drop": "3.1.4",
|
||||||
|
"pablohirafuji/elm-qrcode": "3.3.1",
|
||||||
"ryannhg/date-format": "2.3.0",
|
"ryannhg/date-format": "2.3.0",
|
||||||
"truqu/elm-base64": "2.0.4",
|
"truqu/elm-base64": "2.0.4",
|
||||||
"ursi/elm-throttle": "1.0.1"
|
"ursi/elm-throttle": "1.0.1"
|
||||||
},
|
},
|
||||||
"indirect": {
|
"indirect": {
|
||||||
|
"avh4/elm-color": "1.0.0",
|
||||||
|
"danfishgold/base64-bytes": "1.0.3",
|
||||||
"elm/bytes": "1.0.8",
|
"elm/bytes": "1.0.8",
|
||||||
"elm/parser": "1.1.0",
|
"elm/parser": "1.1.0",
|
||||||
"elm/regex": "1.0.0",
|
"elm/regex": "1.0.0",
|
||||||
"elm/virtual-dom": "1.0.2"
|
"elm/svg": "1.0.1",
|
||||||
|
"elm/virtual-dom": "1.0.2",
|
||||||
|
"elm-community/list-extra": "8.2.4",
|
||||||
|
"folkertdev/elm-flate": "2.0.4",
|
||||||
|
"justgook/elm-image": "4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"test-dependencies": {
|
"test-dependencies": {
|
||||||
|
@@ -23,6 +23,7 @@ import Html.Attributes exposing (..)
|
|||||||
import Html.Events exposing (onCheck, onInput)
|
import Html.Events exposing (onCheck, onInput)
|
||||||
import Http
|
import Http
|
||||||
import Markdown
|
import Markdown
|
||||||
|
import QRCode
|
||||||
import Util.Folder exposing (mkFolderOption)
|
import Util.Folder exposing (mkFolderOption)
|
||||||
|
|
||||||
|
|
||||||
@@ -97,6 +98,10 @@ type Msg
|
|||||||
| FolderDropdownMsg (Comp.Dropdown.Msg IdName)
|
| FolderDropdownMsg (Comp.Dropdown.Msg IdName)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--- Update
|
||||||
|
|
||||||
|
|
||||||
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
||||||
update flags msg model =
|
update flags msg model =
|
||||||
case msg of
|
case msg of
|
||||||
@@ -223,6 +228,18 @@ update flags msg model =
|
|||||||
( model_, Cmd.map FolderDropdownMsg c2 )
|
( model_, Cmd.map FolderDropdownMsg c2 )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--- View
|
||||||
|
|
||||||
|
|
||||||
|
qrCodeView : String -> Html msg
|
||||||
|
qrCodeView message =
|
||||||
|
QRCode.encode message
|
||||||
|
|> Result.map QRCode.toSvg
|
||||||
|
|> Result.withDefault
|
||||||
|
(Html.text "Error generating QR-Code")
|
||||||
|
|
||||||
|
|
||||||
view : Flags -> UiSettings -> Model -> Html Msg
|
view : Flags -> UiSettings -> Model -> Html Msg
|
||||||
view flags settings model =
|
view flags settings model =
|
||||||
let
|
let
|
||||||
@@ -299,16 +316,23 @@ disappear then.
|
|||||||
|
|
||||||
urlInfoMessage : Flags -> Model -> Html Msg
|
urlInfoMessage : Flags -> Model -> Html Msg
|
||||||
urlInfoMessage flags model =
|
urlInfoMessage flags model =
|
||||||
|
let
|
||||||
|
appUrl =
|
||||||
|
flags.config.baseUrl ++ "/app/upload/" ++ model.source.id
|
||||||
|
|
||||||
|
apiUrl =
|
||||||
|
flags.config.baseUrl ++ "/api/v1/open/upload/item/" ++ model.source.id
|
||||||
|
in
|
||||||
div
|
div
|
||||||
[ classList
|
[ classList
|
||||||
[ ( "ui info icon message", True )
|
[ ( "ui info icon message", True )
|
||||||
, ( "hidden", not model.enabled || model.source.id == "" )
|
, ( "hidden", not model.enabled || model.source.id == "" )
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
[ i [ class "info icon" ] []
|
[ div [ class "content" ]
|
||||||
, div [ class "content" ]
|
[ h3 [ class "ui dividingheader" ]
|
||||||
[ div [ class "header" ]
|
[ i [ class "info icon" ] []
|
||||||
[ text "Public Uploads"
|
, text "Public Uploads"
|
||||||
]
|
]
|
||||||
, p []
|
, p []
|
||||||
[ text "This source defines URLs that can be used by anyone to send files to "
|
[ text "This source defines URLs that can be used by anyone to send files to "
|
||||||
@@ -318,15 +342,20 @@ urlInfoMessage flags model =
|
|||||||
, dl [ class "ui list" ]
|
, dl [ class "ui list" ]
|
||||||
[ dt [] [ text "Public Upload Page" ]
|
[ dt [] [ text "Public Upload Page" ]
|
||||||
, dd []
|
, dd []
|
||||||
[ let
|
[ a [ href appUrl, target "_blank" ] [ code [] [ text appUrl ] ]
|
||||||
url =
|
|
||||||
flags.config.baseUrl ++ "/app/upload/" ++ model.source.id
|
|
||||||
in
|
|
||||||
a [ href url, target "_blank" ] [ code [] [ text url ] ]
|
|
||||||
]
|
]
|
||||||
, dt [] [ text "Public API Upload URL" ]
|
]
|
||||||
|
, dl [ class "ui list" ]
|
||||||
|
[ dt [] [ text "Public API Upload URL" ]
|
||||||
, dd []
|
, dd []
|
||||||
[ code [] [ text (flags.config.baseUrl ++ "/api/v1/open/upload/item/" ++ model.source.id) ]
|
[ p []
|
||||||
|
[ code []
|
||||||
|
[ text apiUrl
|
||||||
|
]
|
||||||
|
]
|
||||||
|
, p [ class "qr-code" ]
|
||||||
|
[ qrCodeView apiUrl
|
||||||
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
@@ -68,6 +68,10 @@ type Msg
|
|||||||
| RequestDelete
|
| RequestDelete
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--- Update
|
||||||
|
|
||||||
|
|
||||||
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
||||||
update flags msg model =
|
update flags msg model =
|
||||||
case msg of
|
case msg of
|
||||||
@@ -194,6 +198,10 @@ update flags msg model =
|
|||||||
( { model | deleteConfirm = cm }, cmd )
|
( { model | deleteConfirm = cm }, cmd )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--- View
|
||||||
|
|
||||||
|
|
||||||
view : Flags -> UiSettings -> Model -> Html Msg
|
view : Flags -> UiSettings -> Model -> Html Msg
|
||||||
view flags settings model =
|
view flags settings model =
|
||||||
if model.viewMode == Table then
|
if model.viewMode == Table then
|
||||||
|
@@ -104,6 +104,12 @@
|
|||||||
background: rgba(220, 255, 71, 0.6);
|
background: rgba(220, 255, 71, 0.6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.default-layout .qr-code svg {
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
width: 200px;
|
||||||
|
height: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
.markdown-preview {
|
.markdown-preview {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
max-height: 300px;
|
max-height: 300px;
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
let
|
let
|
||||||
nixpkgsUnstable = builtins.fetchTarball {
|
nixpkgsUnstable = builtins.fetchTarball {
|
||||||
url = "https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz";
|
url = "https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz";
|
||||||
};
|
};
|
||||||
pkgsUnstable = import nixpkgsUnstable { };
|
pkgsUnstable = import nixpkgsUnstable { };
|
||||||
|
Reference in New Issue
Block a user