mirror of
				https://github.com/TheAnachronism/docspell.git
				synced 2025-11-04 12:30:12 +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