feat: desktop connect-to-server over SSH tunnel (issue #26, phase 5)

This commit is contained in:
2026-07-15 18:39:04 +02:00
parent a3ca44640c
commit df2bdc2041
18 changed files with 1094 additions and 479 deletions

View File

@@ -123,12 +123,12 @@ msgstr ""
msgid "API"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:234
#: lib/bds/desktop/menu_bar.ex:265
#, elixir-autogen, elixir-format
msgid "API Documentation"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:232
#: lib/bds/desktop/menu_bar.ex:263
#, elixir-autogen, elixir-format
msgid "About"
msgstr ""
@@ -354,7 +354,7 @@ msgstr ""
msgid "Auto"
msgstr ""
#: lib/bds/desktop/shell_live.ex:443
#: lib/bds/desktop/shell_live.ex:445
#: lib/bds/desktop/shell_live/chat_editor.ex:234
#: lib/bds/desktop/shell_live/media_editor.ex:171
#: lib/bds/desktop/shell_live/media_editor.ex:364
@@ -385,7 +385,7 @@ msgstr ""
msgid "Backlinks"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:181
#: lib/bds/desktop/menu_bar.ex:210
#, elixir-autogen, elixir-format
msgid "Blog"
msgstr ""
@@ -504,7 +504,7 @@ msgstr ""
msgid "Category name is required"
msgstr ""
#: lib/bds/desktop/shell_live.ex:789
#: lib/bds/desktop/shell_live.ex:791
#: lib/bds/desktop/shell_live/chat_editor.ex:87
#: lib/bds/desktop/shell_live/chat_editor.ex:233
#: lib/bds/desktop/shell_live/chat_editor.ex:323
@@ -562,7 +562,7 @@ msgstr ""
msgid "Click to %{action} mapping"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:190
#: lib/bds/desktop/menu_bar.ex:221
#, elixir-autogen, elixir-format
msgid "Close Tab"
msgstr ""
@@ -613,7 +613,7 @@ msgstr ""
msgid "Content Categories"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:195
#: lib/bds/desktop/menu_bar.ex:226
#, elixir-autogen, elixir-format
msgid "Copy"
msgstr ""
@@ -666,7 +666,7 @@ msgstr ""
msgid "Created"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:194
#: lib/bds/desktop/menu_bar.ex:225
#, elixir-autogen, elixir-format
msgid "Cut"
msgstr ""
@@ -732,7 +732,7 @@ msgstr ""
msgid "Default editing mode and diff presentation"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:197
#: lib/bds/desktop/menu_bar.ex:228
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:98
#: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:166
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:116
@@ -875,7 +875,7 @@ msgstr ""
msgid "Do Not Translate"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/menu_bar.ex:264
#: lib/bds/help_docs.ex:14
#: lib/bds/ui/registry.ex:118
#, elixir-autogen, elixir-format
@@ -908,12 +908,12 @@ msgstr ""
msgid "ETA: %{value}"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:179
#: lib/bds/desktop/menu_bar.ex:208
#, elixir-autogen, elixir-format
msgid "Edit"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:216
#: lib/bds/desktop/menu_bar.ex:247
#, elixir-autogen, elixir-format
msgid "Edit Menu"
msgstr ""
@@ -1019,7 +1019,7 @@ msgstr ""
msgid "Extra URLs"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:178
#: lib/bds/desktop/menu_bar.ex:207
#: lib/bds/desktop/shell_live/import_editor.ex:882
#: lib/bds/desktop/shell_live/misc_editor_html/misc_editor.html.heex:157
#, elixir-autogen, elixir-format
@@ -1041,17 +1041,17 @@ msgstr ""
msgid "Filename"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:223
#: lib/bds/desktop/menu_bar.ex:254
#, elixir-autogen, elixir-format
msgid "Fill Missing Translations"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:199
#: lib/bds/desktop/menu_bar.ex:230
#, elixir-autogen, elixir-format
msgid "Find"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:224
#: lib/bds/desktop/menu_bar.ex:255
#, elixir-autogen, elixir-format
msgid "Find Duplicate Posts"
msgstr ""
@@ -1066,7 +1066,7 @@ msgstr ""
msgid "Find Duplicates"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:209
#: lib/bds/desktop/menu_bar.ex:240
#, elixir-autogen, elixir-format
msgid "Force Reload"
msgstr ""
@@ -1077,12 +1077,12 @@ msgstr ""
msgid "Gallery"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:225
#: lib/bds/desktop/menu_bar.ex:256
#, elixir-autogen, elixir-format
msgid "Generate Site"
msgstr ""
#: lib/bds/desktop/shell_live.ex:790
#: lib/bds/desktop/shell_live.ex:792
#: lib/bds/desktop/shell_live/socket_state.ex:109
#: lib/bds/ui/sidebar.ex:789
#, elixir-autogen, elixir-format
@@ -1096,13 +1096,13 @@ msgid "Git Diff"
msgstr ""
#: lib/bds/desktop/shell_data.ex:228
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live.ex:788
#: lib/bds/desktop/shell_live/panel_renderer.ex:171
#, elixir-autogen, elixir-format
msgid "Git Log"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:183
#: lib/bds/desktop/menu_bar.ex:212
#, elixir-autogen, elixir-format
msgid "Help"
msgstr ""
@@ -1189,7 +1189,7 @@ msgstr ""
msgid "Import (new slug)"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:186
#: lib/bds/desktop/menu_bar.ex:215
#, elixir-autogen, elixir-format
msgid "Import Media"
msgstr ""
@@ -1219,9 +1219,9 @@ msgstr ""
msgid "Import failed: %{error}"
msgstr ""
#: lib/bds/desktop/shell_live.ex:606
#: lib/bds/desktop/shell_live.ex:902
#: lib/bds/desktop/shell_live.ex:908
#: lib/bds/desktop/shell_live.ex:608
#: lib/bds/desktop/shell_live.ex:904
#: lib/bds/desktop/shell_live.ex:910
#: lib/bds/desktop/shell_live/sidebar_create.ex:47
#, elixir-autogen, elixir-format
msgid "Import media"
@@ -1391,7 +1391,7 @@ msgstr ""
msgid "Max Posts Per Page"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:203
#: lib/bds/desktop/menu_bar.ex:234
#: lib/bds/desktop/shell_live/media_editor.ex:509
#: lib/bds/desktop/shell_live/media_editor.ex:513
#: lib/bds/desktop/shell_live/misc_editor.ex:735
@@ -1439,7 +1439,7 @@ msgstr ""
msgid "Metadata"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:220
#: lib/bds/desktop/menu_bar.ex:251
#: lib/bds/desktop/shell_live/misc_editor.ex:214
#: lib/bds/desktop/shell_live/misc_editor.ex:226
#: lib/bds/desktop/shell_live/misc_editor.ex:448
@@ -1486,7 +1486,7 @@ msgstr ""
msgid "New Page"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:185
#: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:103
#, elixir-autogen, elixir-format
@@ -1759,7 +1759,7 @@ msgstr ""
msgid "Open"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:189
#: lib/bds/desktop/menu_bar.ex:220
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:382
#, elixir-autogen, elixir-format
msgid "Open Data Folder"
@@ -1776,7 +1776,7 @@ msgstr ""
msgid "Open Settings"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:188
#: lib/bds/desktop/menu_bar.ex:217
#, elixir-autogen, elixir-format
msgid "Open in Browser"
msgstr ""
@@ -1807,7 +1807,7 @@ msgstr ""
msgid "Other (%{count})"
msgstr ""
#: lib/bds/desktop/shell_live.ex:785
#: lib/bds/desktop/shell_live.ex:787
#: lib/bds/desktop/shell_live/panel_renderer.ex:83
#, elixir-autogen, elixir-format
msgid "Output"
@@ -1855,7 +1855,7 @@ msgstr ""
msgid "Parsing WXR file..."
msgstr ""
#: lib/bds/desktop/menu_bar.ex:196
#: lib/bds/desktop/menu_bar.ex:227
#, elixir-autogen, elixir-format
msgid "Paste"
msgstr ""
@@ -1921,7 +1921,7 @@ msgstr ""
msgid "Post saved"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:202
#: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:451
@@ -1937,7 +1937,7 @@ msgstr ""
msgid "Posts (%{count})"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:201
#: lib/bds/desktop/menu_bar.ex:232
#, elixir-autogen, elixir-format
msgid "Preferences"
msgstr ""
@@ -1953,7 +1953,7 @@ msgstr ""
msgid "Preview Mode"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:215
#: lib/bds/desktop/menu_bar.ex:246
#, elixir-autogen, elixir-format
msgid "Preview Post"
msgstr ""
@@ -2005,7 +2005,7 @@ msgstr ""
msgid "Publish"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/menu_bar.ex:245
#, elixir-autogen, elixir-format
msgid "Publish Selected"
msgstr ""
@@ -2038,7 +2038,7 @@ msgstr ""
msgid "Quick Actions"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:191
#: lib/bds/desktop/menu_bar.ex:222
#, elixir-autogen, elixir-format
msgid "Quit"
msgstr ""
@@ -2048,12 +2048,12 @@ msgstr ""
msgid "Ready to import:"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/desktop/menu_bar.ex:248
#, elixir-autogen, elixir-format
msgid "Rebuild Database"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:219
#: lib/bds/desktop/menu_bar.ex:250
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
#, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index"
@@ -2084,7 +2084,7 @@ msgstr ""
msgid "Rebuild filesystem-backed records and thumbnails"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:193
#: lib/bds/desktop/menu_bar.ex:224
#, elixir-autogen, elixir-format
msgid "Redo"
msgstr ""
@@ -2111,7 +2111,7 @@ msgstr ""
msgid "Refresh Translation"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:221
#: lib/bds/desktop/menu_bar.ex:252
#, elixir-autogen, elixir-format
msgid "Regenerate Calendar"
msgstr ""
@@ -2121,12 +2121,12 @@ msgstr ""
msgid "Regenerate Missing Thumbnails"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:218
#: lib/bds/desktop/menu_bar.ex:249
#, elixir-autogen, elixir-format
msgid "Reindex Text"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:208
#: lib/bds/desktop/menu_bar.ex:239
#, elixir-autogen, elixir-format
msgid "Reload"
msgstr ""
@@ -2157,7 +2157,7 @@ msgstr ""
msgid "Render in Lists"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:200
#: lib/bds/desktop/menu_bar.ex:231
#, elixir-autogen, elixir-format
msgid "Replace"
msgstr ""
@@ -2174,12 +2174,12 @@ msgstr ""
msgid "Replace Media File"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:236
#: lib/bds/desktop/menu_bar.ex:267
#, elixir-autogen, elixir-format
msgid "Report Issue"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:210
#: lib/bds/desktop/menu_bar.ex:241
#, elixir-autogen, elixir-format
msgid "Reset Zoom"
msgstr ""
@@ -2234,7 +2234,7 @@ msgstr ""
msgid "SSH Mode"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:187
#: lib/bds/desktop/menu_bar.ex:216
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:89
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:299
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:13
@@ -2353,7 +2353,7 @@ msgstr ""
msgid "Select & Analyze"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:198
#: lib/bds/desktop/menu_bar.ex:229
#, elixir-autogen, elixir-format
msgid "Select All"
msgstr ""
@@ -2565,7 +2565,7 @@ msgstr ""
msgid "Tags"
msgstr ""
#: lib/bds/desktop/shell_live.ex:784
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#, elixir-autogen, elixir-format
msgid "Tasks"
@@ -2661,12 +2661,12 @@ msgstr ""
msgid "Title"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:206
#: lib/bds/desktop/menu_bar.ex:237
#, elixir-autogen, elixir-format
msgid "Toggle Assistant Sidebar"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:207
#: lib/bds/desktop/menu_bar.ex:238
#, elixir-autogen, elixir-format
msgid "Toggle Dev Tools"
msgstr ""
@@ -2677,17 +2677,17 @@ msgstr ""
msgid "Toggle Filters"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:213
#: lib/bds/desktop/menu_bar.ex:244
#, elixir-autogen, elixir-format
msgid "Toggle Full Screen"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:205
#: lib/bds/desktop/menu_bar.ex:236
#, elixir-autogen, elixir-format
msgid "Toggle Panel"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:204
#: lib/bds/desktop/menu_bar.ex:235
#, elixir-autogen, elixir-format
msgid "Toggle Sidebar"
msgstr ""
@@ -2783,7 +2783,7 @@ msgstr ""
msgid "URL"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:192
#: lib/bds/desktop/menu_bar.ex:223
#, elixir-autogen, elixir-format
msgid "Undo"
msgstr ""
@@ -2833,7 +2833,7 @@ msgstr ""
msgid "Updated URLs"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:228
#: lib/bds/desktop/menu_bar.ex:259
#, elixir-autogen, elixir-format
msgid "Upload Site"
msgstr ""
@@ -2860,22 +2860,22 @@ msgstr ""
msgid "Validate"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:227
#: lib/bds/desktop/menu_bar.ex:258
#, elixir-autogen, elixir-format
msgid "Validate Site"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:222
#: lib/bds/desktop/menu_bar.ex:253
#, elixir-autogen, elixir-format
msgid "Validate Translations"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:180
#: lib/bds/desktop/menu_bar.ex:209
#, elixir-autogen, elixir-format
msgid "View"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:235
#: lib/bds/desktop/menu_bar.ex:266
#, elixir-autogen, elixir-format
msgid "View on GitHub"
msgstr ""
@@ -2919,12 +2919,12 @@ msgstr ""
msgid "You"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:211
#: lib/bds/desktop/menu_bar.ex:242
#, elixir-autogen, elixir-format
msgid "Zoom In"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:212
#: lib/bds/desktop/menu_bar.ex:243
#, elixir-autogen, elixir-format
msgid "Zoom Out"
msgstr ""
@@ -3246,12 +3246,12 @@ msgstr ""
msgid "Comparing database and filesystem metadata"
msgstr ""
#: lib/bds/desktop/shell_live.ex:682
#: lib/bds/desktop/shell_live.ex:684
#, elixir-autogen, elixir-format
msgid "Added %{count} images to post"
msgstr ""
#: lib/bds/desktop/shell_live.ex:650
#: lib/bds/desktop/shell_live.ex:652
#, elixir-autogen, elixir-format
msgid "Added %{title}"
msgstr ""
@@ -3271,18 +3271,18 @@ msgstr ""
msgid "Image Import Concurrency"
msgstr ""
#: lib/bds/desktop/shell_live.ex:442
#: lib/bds/desktop/shell_live.ex:455
#: lib/bds/desktop/shell_live.ex:649
#: lib/bds/desktop/shell_live.ex:681
#: lib/bds/desktop/shell_live.ex:692
#: lib/bds/desktop/shell_live.ex:703
#: lib/bds/desktop/shell_live.ex:444
#: lib/bds/desktop/shell_live.ex:457
#: lib/bds/desktop/shell_live.ex:651
#: lib/bds/desktop/shell_live.ex:683
#: lib/bds/desktop/shell_live.ex:694
#: lib/bds/desktop/shell_live.ex:705
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420
#, elixir-autogen, elixir-format
msgid "Add Gallery Images"
msgstr ""
#: lib/bds/desktop/shell_live.ex:704
#: lib/bds/desktop/shell_live.ex:706
#, elixir-autogen, elixir-format
msgid "Failed to process %{path}: %{reason}"
msgstr ""
@@ -3473,12 +3473,12 @@ msgstr ""
msgid "untracked"
msgstr ""
#: lib/bds/desktop/shell_live.ex:810
#: lib/bds/desktop/shell_live.ex:812
#, elixir-autogen, elixir-format
msgid "Blogmark"
msgstr ""
#: lib/bds/desktop/shell_live.ex:853
#: lib/bds/desktop/shell_live.ex:855
#, elixir-autogen, elixir-format
msgid "Open a project before importing a blogmark."
msgstr ""
@@ -3519,7 +3519,7 @@ msgstr ""
msgid "Failed to copy bookmarklet to clipboard"
msgstr ""
#: lib/bds/desktop/shell_live.ex:822
#: lib/bds/desktop/shell_live.ex:824
#, elixir-autogen, elixir-format
msgid "The project this blogmark targets does not exist here."
msgstr ""
@@ -3529,7 +3529,7 @@ msgstr ""
msgid "Suggested tags"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:226
#: lib/bds/desktop/menu_bar.ex:257
#, elixir-autogen, elixir-format
msgid "Force Render Site"
msgstr ""
@@ -3544,22 +3544,22 @@ msgstr ""
msgid "Rebuild Post Links"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:231
#: lib/bds/desktop/menu_bar.ex:262
#, elixir-autogen, elixir-format
msgid "Bring All to Front"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:229
#: lib/bds/desktop/menu_bar.ex:260
#, elixir-autogen, elixir-format
msgid "Minimize"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:182
#: lib/bds/desktop/menu_bar.ex:211
#, elixir-autogen, elixir-format
msgid "Window"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:230
#: lib/bds/desktop/menu_bar.ex:261
#, elixir-autogen, elixir-format
msgid "Zoom"
msgstr ""
@@ -3715,3 +3715,35 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:83
#: lib/bds/desktop/shell_live.ex:1110
#, elixir-autogen, elixir-format
msgid "Connect to Server"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:218
#, elixir-autogen, elixir-format
msgid "Connect to Server…"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:84
#, elixir-autogen, elixir-format
msgid "Connection failed: %{reason}"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:219
#, elixir-autogen, elixir-format
msgid "Disconnect from Server"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:72
#: lib/bds/desktop/shell_live.ex:1097
#, elixir-autogen, elixir-format
msgid "Server address (user@host or user@host:port), public-key auth:"
msgstr ""
#: lib/bds/desktop/remote_connection.ex:82
#, elixir-autogen, elixir-format
msgid "Use the form user@host or user@host:port."
msgstr ""