1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-08-30 20:39:46 +02:00

Compare commits

..

78 Commits

Author SHA1 Message Date
Laurent Cozic
f7bfd5dbe7 Merge branch 'release-1.4' into api_pagination 2020-10-31 23:57:52 +00:00
Laurent Cozic
9a4b8685d2 Merge branch 'release-1.4' into api_pagination 2020-10-31 23:54:09 +00:00
Laurent
f3376c779e Desktop: Resolves #275: Adds spell checker support for Rich Text editor (#3974) 2020-10-31 23:52:46 +00:00
Laurent
76739eeff0 All: Resolves #3839: Change Markdown link rendering and soft-break default to align with CommonMark spec (#3975) 2020-10-31 23:47:55 +00:00
Laurent Cozic
6d2bad01e6 Merge branch 'release-1.3' into dev 2020-10-31 16:49:50 +00:00
Laurent Cozic
3847831d80 Merge branch 'release-1.3' of github.com:laurent22/joplin into release-1.3 2020-10-31 16:45:17 +00:00
Robin
44462f4d71 All: Translation: Update nl_NL.po (#4012) 2020-10-31 12:38:54 -04:00
Laurent Cozic
4d20589773 Desktop: Remove from keymap editor commands that cannot be associated with a shortcut 2020-10-31 16:29:17 +00:00
Laurent Cozic
52140ec1a9 Merge branch 'release-1.3' into dev 2020-10-31 13:06:06 +00:00
Laurent Cozic
08c2a7ad64 Tools: Improved HTML escape in git-changelog 2020-10-31 13:05:46 +00:00
Laurent Cozic
d19796f14c Electron release v1.3.11 2020-10-31 13:02:14 +00:00
Laurent Cozic
e4f53a48d2 Desktop: Fixed handling of Option key for shortcuts in macOS 2020-10-31 13:01:40 +00:00
Laurent Cozic
154163bd6c Desktop: Fixes #4010: Add history backward and forward commands to keymap and menus 2020-10-31 12:46:55 +00:00
Laurent Cozic
4502414934 Desktop: Make sure all commands appear in keymap editor 2020-10-31 12:25:12 +00:00
Laurent Cozic
86c471afcd Cli: Fixes #4000: Display proper error message when decryption worker cannot be started 2020-10-29 23:37:19 +00:00
Laurent Cozic
279998db2b Merge branch 'dev' into api_pagination 2020-10-29 17:26:53 +00:00
Laurent Cozic
e2698aaead Merge branch 'release-1.3' into dev 2020-10-29 17:10:48 +00:00
Laurent Cozic
8cfe4b0f82 Mobile: Disable beta editor for now due to bugs that cannot be fixed
and crashes.

See https://discourse.joplinapp.org/t/11658/9?u=laurent
2020-10-29 16:42:47 +00:00
Laurent Cozic
fd90a490c0 All: Security: Remove "link" and "meta" tags from notes to prevent XSS 2020-10-29 16:19:56 +00:00
Helmut K. C. Tessarek
16c5ffadc7 Update translations 2020-10-29 10:34:31 -04:00
Laurent Cozic
4a184721e4 Doc: Restored privacy policy document 2020-10-29 13:49:12 +00:00
Laurent Cozic
1e3bd937ed Android release v1.3.10 2020-10-29 11:34:10 +00:00
Laurent Cozic
0f6932f1e8 Clipper release v1.3.1 2020-10-29 11:28:21 +00:00
Laurent Cozic
cab98776db Electron release v1.3.10 2020-10-29 11:20:45 +00:00
Laurent Cozic
fbc1e3ed3b Merge branch 'dev' into release-1.3 2020-10-29 11:18:32 +00:00
Ji-Hyeon Gim
805d16abda All: Translation: Update ko.po (#3995)
It updates fuzzy translations for Korean.

Signed-off-by: Ji-Hyeon Gim <potatogim@potatogim.net>
2020-10-29 11:18:01 +00:00
Eduardo Braga
f133229287 Add some missing translations to pt_BR.po (#3994) 2020-10-29 11:16:18 +00:00
Mario Campo
8f4031572a Update es_ES.po (#3978)
Several corrections in spanish language
2020-10-29 11:15:53 +00:00
Laurent Cozic
d25fa796c0 Api: Added service to access resource external editing 2020-10-29 11:09:18 +00:00
Laurent Cozic
089d6a5c9e All: Fixes #3993: Fix slow Katex rendering when there are many global definitions 2020-10-29 10:44:48 +00:00
Laurent Cozic
3f83355d9f Clipper: Fixes #3984: Images from some website were not being downloaded 2020-10-29 10:16:31 +00:00
Laurent Cozic
40380e3066 Merge branch 'release-1.3' of github.com:laurent22/joplin into release-1.3 2020-10-29 10:15:08 +00:00
Laurent Cozic
a6748bafb3 All: Fixes #3992: Update highlight.js to fix freeze for certain code blocks 2020-10-28 17:31:54 +00:00
Laurent Cozic
b52f6eb77c All: Fixes #3955: Fixed sync issue when importing ENEX files that contain new line characters in the source URL attribute 2020-10-28 17:21:41 +00:00
Laurent Cozic
98c933fdb7 All: Fixed OneDrive authentication 2020-10-28 15:50:34 +00:00
Laurent Cozic
ece7ffadd6 Desktop: Fixes #3986: Handle gzipped CSS files when importing from clipper 2020-10-28 15:47:36 +00:00
Laurent Cozic
591bceb8ef Update mermaid 2020-10-28 12:10:35 +00:00
Laurent Cozic
04cfd07176 macOS: Regression: Restore Edit menu in config screens so that Copy/Cut/Paste shortcuts work 2020-10-28 11:23:57 +00:00
Laurent Cozic
db2282a351 Desktop: Fix syntax of imported resources when importing ENEX as HTML 2020-10-28 11:11:04 +00:00
Laurent Cozic
0ec3d6ca9d Clipper: Upgraded clipper to support API pagination
This version of the clipper will support both new and old Joplin
clients, so as to ease the transition.
2020-10-27 00:38:39 +00:00
Laurent Cozic
18608f4c3a Fix 2020-10-27 00:37:50 +00:00
Laurent Cozic
5059089479 Upgraded clipper to support API pagination 2020-10-27 00:37:22 +00:00
Laurent Cozic
442b7ce0d3 litner 2020-10-26 23:19:52 +00:00
Laurent Cozic
6284c386fb linting 2020-10-26 23:17:31 +00:00
Laurent Cozic
3a63df6515 Make it easier to build API doc 2020-10-26 23:15:15 +00:00
Laurent Cozic
c08d225ae1 Updated doc 2020-10-26 23:06:11 +00:00
Laurent Cozic
594720530e Moved functions under utils 2020-10-26 22:21:01 +00:00
Laurent Cozic
e7d6675f47 Finished moving routes outside 2020-10-26 22:10:13 +00:00
Laurent Cozic
0d93f0c3c0 Refactor resources 2020-10-26 17:17:19 +00:00
Laurent Cozic
37b308d440 More notes route out 2020-10-26 14:37:35 +00:00
Laurent Cozic
1f8f3f24ed Cleaning up and trimming down Api class 2020-10-26 14:12:14 +00:00
Laurent Cozic
3713c5ab2c Better handling of default fields 2020-10-26 12:43:42 +00:00
Laurent Cozic
6a068a90b2 Desktop: Regression: Keyboard shortcut would not save in some cases 2020-10-25 17:46:41 +00:00
Laurent Cozic
9a6f6c8b39 Desktop: Regression: Restore "New sub-notebook" command 2020-10-25 17:29:52 +00:00
Laurent Cozic
52d5c32950 Plugins: Add the openNote, openFolder and openTag commands 2020-10-25 17:22:59 +00:00
Laurent Cozic
3a94d2c49b Tests 2020-10-25 16:54:53 +00:00
Laurent Cozic
de47cff86d Fixed case 2020-10-24 12:07:48 +01:00
Laurent Cozic
a459174f98 Desktop: Fix: Command Palette click did not work 2020-10-24 11:46:02 +01:00
Laurent Cozic
75d5aa3a77 Tools: Fixed linter errors 2020-10-24 00:14:30 +01:00
Laurent Cozic
c254ca524f CLI v1.3.3 2020-10-23 17:01:13 +01:00
Laurent Cozic
51934b8d8d Cli: Added missing "immer" package 2020-10-23 17:00:20 +01:00
Laurent Cozic
a5dd686bb2 CLI v1.3.2 2020-10-23 16:58:28 +01:00
Laurent Cozic
4cbfd04522 Cli: Trying to fix build 2020-10-23 16:56:34 +01:00
Laurent Cozic
6d5d9323bd CLI v1.3.1 2020-10-23 16:04:34 +01:00
Laurent Cozic
76063a6284 Android release v1.3.9 2020-10-23 16:03:13 +01:00
Laurent Cozic
4119924e57 Electron release v1.3.9 2020-10-23 15:57:29 +01:00
Laurent Cozic
537336754c All: Sort tags in a case-insensitive way 2020-10-23 15:48:11 +01:00
Laurent Cozic
06f73919bd Desktop: Fixed Cut menu item and test units 2020-10-23 13:21:37 +01:00
Laurent Cozic
3f3e46081c Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-10-22 16:34:45 +01:00
Laurent Cozic
68e4b4eaad macOS: Fixes #3404: Show context menu option to copy a link 2020-10-22 16:32:13 +01:00
Gen Neko
9dcb4b51e5 All: Translation: Update ja_JP.po (#3967) 2020-10-22 11:05:28 -04:00
Laurent Cozic
8543849ea1 Tools: Fixed tests 2020-10-22 15:55:29 +01:00
Laurent Cozic
6ce5240e12 Plugins: Fixed tests 2020-10-22 14:51:59 +01:00
Rory O’Kane
5bc25aefce Desktop: Make “update is available” dialog box easier to use (#3877) 2020-10-22 12:25:06 +01:00
Naveen M V
b737ca7471 All: Fix search filters when language is in Korean or with accents (#3947) 2020-10-22 12:16:47 +01:00
Laurent Cozic
a5d7366f94 Desktop: Fix invalid tag state issue when importing notes or syncing 2020-10-22 11:21:16 +01:00
Laurent Cozic
98f822d89c Cleaned up plugin doc 2020-10-21 22:52:58 +01:00
Laurent Cozic
c33a8250ee Desktop: Added openProfileDirectory command and menu item 2020-10-21 22:10:21 +01:00
412 changed files with 107583 additions and 101804 deletions

View File

@@ -60,6 +60,7 @@ Tools/PortableAppsLauncher
Modules/TinyMCE/IconPack/postinstall.js
Modules/TinyMCE/langs/
CliClient/build/
plugin_types/
# AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD
CliClient/app/LinkSelector.js
@@ -105,7 +106,11 @@ ElectronClient/gui/MainScreen/commands/hideModalMessage.js
ElectronClient/gui/MainScreen/commands/moveToFolder.js
ElectronClient/gui/MainScreen/commands/newFolder.js
ElectronClient/gui/MainScreen/commands/newNote.js
ElectronClient/gui/MainScreen/commands/newSubFolder.js
ElectronClient/gui/MainScreen/commands/newTodo.js
ElectronClient/gui/MainScreen/commands/openFolder.js
ElectronClient/gui/MainScreen/commands/openNote.js
ElectronClient/gui/MainScreen/commands/openTag.js
ElectronClient/gui/MainScreen/commands/print.js
ElectronClient/gui/MainScreen/commands/renameFolder.js
ElectronClient/gui/MainScreen/commands/renameTag.js
@@ -122,6 +127,7 @@ ElectronClient/gui/MainScreen/commands/toggleSideBar.js
ElectronClient/gui/MainScreen/commands/toggleVisiblePanes.js
ElectronClient/gui/MainScreen/MainScreen.js
ElectronClient/gui/MenuBar.js
ElectronClient/gui/menuCommandNames.js
ElectronClient/gui/MultiNoteActions.js
ElectronClient/gui/NoteContentPropertiesDialog.js
ElectronClient/gui/NoteEditor/commands/editorCommandDeclarations.js
@@ -144,8 +150,10 @@ ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/useListIdent.js
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/useScrollUtils.js
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/styles/index.js
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.js
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/utils/setupContextMenu.js
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/utils/useScroll.js
ElectronClient/gui/NoteEditor/NoteEditor.js
ElectronClient/gui/NoteEditor/NoteTitle/NoteTitleBar.js
ElectronClient/gui/NoteEditor/styles/index.js
ElectronClient/gui/NoteEditor/utils/contextMenu.js
ElectronClient/gui/NoteEditor/utils/index.js
@@ -202,8 +210,10 @@ ElectronClient/services/plugins/PluginRunner.js
ElectronClient/services/plugins/UserWebview.js
ElectronClient/services/plugins/UserWebviewDialog.js
ElectronClient/services/plugins/UserWebviewDialogButtonBar.js
ElectronClient/services/spellChecker/SpellCheckerServiceDriverNative.js
ReactNativeClient/lib/AsyncActionQueue.js
ReactNativeClient/lib/BaseApplication.js
ReactNativeClient/lib/BaseModel.js
ReactNativeClient/lib/checkPermissions.js
ReactNativeClient/lib/commands/historyBackward.js
ReactNativeClient/lib/commands/historyForward.js
@@ -247,6 +257,9 @@ ReactNativeClient/lib/markdownUtils.js
ReactNativeClient/lib/markupLanguageUtils.js
ReactNativeClient/lib/models/Alarm.js
ReactNativeClient/lib/models/Setting.js
ReactNativeClient/lib/models/utils/modelFeed.js
ReactNativeClient/lib/models/utils/paginationToSql.js
ReactNativeClient/lib/models/utils/types.js
ReactNativeClient/lib/ntpDate.js
ReactNativeClient/lib/path-utils.js
ReactNativeClient/lib/PoorManIntervals.js
@@ -321,10 +334,27 @@ ReactNativeClient/lib/services/ResourceEditWatcher/index.js
ReactNativeClient/lib/services/ResourceEditWatcher/reducer.js
ReactNativeClient/lib/services/rest/actionApi.desktop.js
ReactNativeClient/lib/services/rest/Api.js
ReactNativeClient/lib/services/rest/errors.js
ReactNativeClient/lib/services/rest/ApiResponse.js
ReactNativeClient/lib/services/rest/routes/folders.js
ReactNativeClient/lib/services/rest/routes/master_keys.js
ReactNativeClient/lib/services/rest/routes/notes.js
ReactNativeClient/lib/services/rest/routes/ping.js
ReactNativeClient/lib/services/rest/routes/resources.js
ReactNativeClient/lib/services/rest/routes/search.js
ReactNativeClient/lib/services/rest/routes/tags.js
ReactNativeClient/lib/services/rest/utils/defaultAction.js
ReactNativeClient/lib/services/rest/utils/defaultLoadOptions.js
ReactNativeClient/lib/services/rest/utils/defaultSaveOptions.js
ReactNativeClient/lib/services/rest/utils/errors.js
ReactNativeClient/lib/services/rest/utils/paginatedResults.js
ReactNativeClient/lib/services/rest/utils/readonlyProperties.js
ReactNativeClient/lib/services/rest/utils/requestFields.js
ReactNativeClient/lib/services/rest/utils/requestPaginationOptions.js
ReactNativeClient/lib/services/searchengine/filterParser.js
ReactNativeClient/lib/services/searchengine/queryBuilder.js
ReactNativeClient/lib/services/SettingUtils.js
ReactNativeClient/lib/services/spellChecker/SpellCheckerService.js
ReactNativeClient/lib/services/spellChecker/SpellCheckerServiceDriverBase.js
ReactNativeClient/lib/services/synchronizer/gui/useSyncTargetUpgrade.js
ReactNativeClient/lib/services/synchronizer/LockHandler.js
ReactNativeClient/lib/services/synchronizer/MigrationHandler.js
@@ -347,6 +377,7 @@ ReactNativeClient/lib/themes/oledDark.js
ReactNativeClient/lib/themes/solarizedDark.js
ReactNativeClient/lib/themes/solarizedLight.js
ReactNativeClient/lib/themes/type.js
ReactNativeClient/lib/time.js
ReactNativeClient/lib/uuid.js
ReactNativeClient/lib/versionInfo.js
ReactNativeClient/PluginAssetsLoader.js

32
.gitignore vendored
View File

@@ -99,7 +99,11 @@ ElectronClient/gui/MainScreen/commands/hideModalMessage.js
ElectronClient/gui/MainScreen/commands/moveToFolder.js
ElectronClient/gui/MainScreen/commands/newFolder.js
ElectronClient/gui/MainScreen/commands/newNote.js
ElectronClient/gui/MainScreen/commands/newSubFolder.js
ElectronClient/gui/MainScreen/commands/newTodo.js
ElectronClient/gui/MainScreen/commands/openFolder.js
ElectronClient/gui/MainScreen/commands/openNote.js
ElectronClient/gui/MainScreen/commands/openTag.js
ElectronClient/gui/MainScreen/commands/print.js
ElectronClient/gui/MainScreen/commands/renameFolder.js
ElectronClient/gui/MainScreen/commands/renameTag.js
@@ -116,6 +120,7 @@ ElectronClient/gui/MainScreen/commands/toggleSideBar.js
ElectronClient/gui/MainScreen/commands/toggleVisiblePanes.js
ElectronClient/gui/MainScreen/MainScreen.js
ElectronClient/gui/MenuBar.js
ElectronClient/gui/menuCommandNames.js
ElectronClient/gui/MultiNoteActions.js
ElectronClient/gui/NoteContentPropertiesDialog.js
ElectronClient/gui/NoteEditor/commands/editorCommandDeclarations.js
@@ -138,8 +143,10 @@ ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/useListIdent.js
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/useScrollUtils.js
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/styles/index.js
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.js
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/utils/setupContextMenu.js
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/utils/useScroll.js
ElectronClient/gui/NoteEditor/NoteEditor.js
ElectronClient/gui/NoteEditor/NoteTitle/NoteTitleBar.js
ElectronClient/gui/NoteEditor/styles/index.js
ElectronClient/gui/NoteEditor/utils/contextMenu.js
ElectronClient/gui/NoteEditor/utils/index.js
@@ -196,8 +203,10 @@ ElectronClient/services/plugins/PluginRunner.js
ElectronClient/services/plugins/UserWebview.js
ElectronClient/services/plugins/UserWebviewDialog.js
ElectronClient/services/plugins/UserWebviewDialogButtonBar.js
ElectronClient/services/spellChecker/SpellCheckerServiceDriverNative.js
ReactNativeClient/lib/AsyncActionQueue.js
ReactNativeClient/lib/BaseApplication.js
ReactNativeClient/lib/BaseModel.js
ReactNativeClient/lib/checkPermissions.js
ReactNativeClient/lib/commands/historyBackward.js
ReactNativeClient/lib/commands/historyForward.js
@@ -241,6 +250,9 @@ ReactNativeClient/lib/markdownUtils.js
ReactNativeClient/lib/markupLanguageUtils.js
ReactNativeClient/lib/models/Alarm.js
ReactNativeClient/lib/models/Setting.js
ReactNativeClient/lib/models/utils/modelFeed.js
ReactNativeClient/lib/models/utils/paginationToSql.js
ReactNativeClient/lib/models/utils/types.js
ReactNativeClient/lib/ntpDate.js
ReactNativeClient/lib/path-utils.js
ReactNativeClient/lib/PoorManIntervals.js
@@ -315,10 +327,27 @@ ReactNativeClient/lib/services/ResourceEditWatcher/index.js
ReactNativeClient/lib/services/ResourceEditWatcher/reducer.js
ReactNativeClient/lib/services/rest/actionApi.desktop.js
ReactNativeClient/lib/services/rest/Api.js
ReactNativeClient/lib/services/rest/errors.js
ReactNativeClient/lib/services/rest/ApiResponse.js
ReactNativeClient/lib/services/rest/routes/folders.js
ReactNativeClient/lib/services/rest/routes/master_keys.js
ReactNativeClient/lib/services/rest/routes/notes.js
ReactNativeClient/lib/services/rest/routes/ping.js
ReactNativeClient/lib/services/rest/routes/resources.js
ReactNativeClient/lib/services/rest/routes/search.js
ReactNativeClient/lib/services/rest/routes/tags.js
ReactNativeClient/lib/services/rest/utils/defaultAction.js
ReactNativeClient/lib/services/rest/utils/defaultLoadOptions.js
ReactNativeClient/lib/services/rest/utils/defaultSaveOptions.js
ReactNativeClient/lib/services/rest/utils/errors.js
ReactNativeClient/lib/services/rest/utils/paginatedResults.js
ReactNativeClient/lib/services/rest/utils/readonlyProperties.js
ReactNativeClient/lib/services/rest/utils/requestFields.js
ReactNativeClient/lib/services/rest/utils/requestPaginationOptions.js
ReactNativeClient/lib/services/searchengine/filterParser.js
ReactNativeClient/lib/services/searchengine/queryBuilder.js
ReactNativeClient/lib/services/SettingUtils.js
ReactNativeClient/lib/services/spellChecker/SpellCheckerService.js
ReactNativeClient/lib/services/spellChecker/SpellCheckerServiceDriverBase.js
ReactNativeClient/lib/services/synchronizer/gui/useSyncTargetUpgrade.js
ReactNativeClient/lib/services/synchronizer/LockHandler.js
ReactNativeClient/lib/services/synchronizer/MigrationHandler.js
@@ -341,6 +370,7 @@ ReactNativeClient/lib/themes/oledDark.js
ReactNativeClient/lib/themes/solarizedDark.js
ReactNativeClient/lib/themes/solarizedLight.js
ReactNativeClient/lib/themes/type.js
ReactNativeClient/lib/time.js
ReactNativeClient/lib/uuid.js
ReactNativeClient/lib/versionInfo.js
ReactNativeClient/PluginAssetsLoader.js

32
.ignore
View File

@@ -48,7 +48,11 @@ ElectronClient/gui/MainScreen/commands/hideModalMessage.js
ElectronClient/gui/MainScreen/commands/moveToFolder.js
ElectronClient/gui/MainScreen/commands/newFolder.js
ElectronClient/gui/MainScreen/commands/newNote.js
ElectronClient/gui/MainScreen/commands/newSubFolder.js
ElectronClient/gui/MainScreen/commands/newTodo.js
ElectronClient/gui/MainScreen/commands/openFolder.js
ElectronClient/gui/MainScreen/commands/openNote.js
ElectronClient/gui/MainScreen/commands/openTag.js
ElectronClient/gui/MainScreen/commands/print.js
ElectronClient/gui/MainScreen/commands/renameFolder.js
ElectronClient/gui/MainScreen/commands/renameTag.js
@@ -65,6 +69,7 @@ ElectronClient/gui/MainScreen/commands/toggleSideBar.js
ElectronClient/gui/MainScreen/commands/toggleVisiblePanes.js
ElectronClient/gui/MainScreen/MainScreen.js
ElectronClient/gui/MenuBar.js
ElectronClient/gui/menuCommandNames.js
ElectronClient/gui/MultiNoteActions.js
ElectronClient/gui/NoteContentPropertiesDialog.js
ElectronClient/gui/NoteEditor/commands/editorCommandDeclarations.js
@@ -87,8 +92,10 @@ ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/useListIdent.js
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/useScrollUtils.js
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/styles/index.js
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.js
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/utils/setupContextMenu.js
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/utils/useScroll.js
ElectronClient/gui/NoteEditor/NoteEditor.js
ElectronClient/gui/NoteEditor/NoteTitle/NoteTitleBar.js
ElectronClient/gui/NoteEditor/styles/index.js
ElectronClient/gui/NoteEditor/utils/contextMenu.js
ElectronClient/gui/NoteEditor/utils/index.js
@@ -145,8 +152,10 @@ ElectronClient/services/plugins/PluginRunner.js
ElectronClient/services/plugins/UserWebview.js
ElectronClient/services/plugins/UserWebviewDialog.js
ElectronClient/services/plugins/UserWebviewDialogButtonBar.js
ElectronClient/services/spellChecker/SpellCheckerServiceDriverNative.js
ReactNativeClient/lib/AsyncActionQueue.js
ReactNativeClient/lib/BaseApplication.js
ReactNativeClient/lib/BaseModel.js
ReactNativeClient/lib/checkPermissions.js
ReactNativeClient/lib/commands/historyBackward.js
ReactNativeClient/lib/commands/historyForward.js
@@ -190,6 +199,9 @@ ReactNativeClient/lib/markdownUtils.js
ReactNativeClient/lib/markupLanguageUtils.js
ReactNativeClient/lib/models/Alarm.js
ReactNativeClient/lib/models/Setting.js
ReactNativeClient/lib/models/utils/modelFeed.js
ReactNativeClient/lib/models/utils/paginationToSql.js
ReactNativeClient/lib/models/utils/types.js
ReactNativeClient/lib/ntpDate.js
ReactNativeClient/lib/path-utils.js
ReactNativeClient/lib/PoorManIntervals.js
@@ -264,10 +276,27 @@ ReactNativeClient/lib/services/ResourceEditWatcher/index.js
ReactNativeClient/lib/services/ResourceEditWatcher/reducer.js
ReactNativeClient/lib/services/rest/actionApi.desktop.js
ReactNativeClient/lib/services/rest/Api.js
ReactNativeClient/lib/services/rest/errors.js
ReactNativeClient/lib/services/rest/ApiResponse.js
ReactNativeClient/lib/services/rest/routes/folders.js
ReactNativeClient/lib/services/rest/routes/master_keys.js
ReactNativeClient/lib/services/rest/routes/notes.js
ReactNativeClient/lib/services/rest/routes/ping.js
ReactNativeClient/lib/services/rest/routes/resources.js
ReactNativeClient/lib/services/rest/routes/search.js
ReactNativeClient/lib/services/rest/routes/tags.js
ReactNativeClient/lib/services/rest/utils/defaultAction.js
ReactNativeClient/lib/services/rest/utils/defaultLoadOptions.js
ReactNativeClient/lib/services/rest/utils/defaultSaveOptions.js
ReactNativeClient/lib/services/rest/utils/errors.js
ReactNativeClient/lib/services/rest/utils/paginatedResults.js
ReactNativeClient/lib/services/rest/utils/readonlyProperties.js
ReactNativeClient/lib/services/rest/utils/requestFields.js
ReactNativeClient/lib/services/rest/utils/requestPaginationOptions.js
ReactNativeClient/lib/services/searchengine/filterParser.js
ReactNativeClient/lib/services/searchengine/queryBuilder.js
ReactNativeClient/lib/services/SettingUtils.js
ReactNativeClient/lib/services/spellChecker/SpellCheckerService.js
ReactNativeClient/lib/services/spellChecker/SpellCheckerServiceDriverBase.js
ReactNativeClient/lib/services/synchronizer/gui/useSyncTargetUpgrade.js
ReactNativeClient/lib/services/synchronizer/LockHandler.js
ReactNativeClient/lib/services/synchronizer/MigrationHandler.js
@@ -290,6 +319,7 @@ ReactNativeClient/lib/themes/oledDark.js
ReactNativeClient/lib/themes/solarizedDark.js
ReactNativeClient/lib/themes/solarizedLight.js
ReactNativeClient/lib/themes/type.js
ReactNativeClient/lib/time.js
ReactNativeClient/lib/uuid.js
ReactNativeClient/lib/versionInfo.js
ReactNativeClient/PluginAssetsLoader.js

Binary file not shown.

Before

Width:  |  Height:  |  Size: 300 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File

@@ -22,4 +22,5 @@ yarn-error.log
tests/support/dropbox-auth.txt
tests/support/nextcloud-auth.json
tests/support/onedrive-auth.txt
build/
build/
patches/

View File

@@ -2,7 +2,7 @@ const Logger = require('lib/Logger').default;
const Folder = require('lib/models/Folder.js');
const BaseItem = require('lib/models/BaseItem.js');
const Tag = require('lib/models/Tag.js');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const Note = require('lib/models/Note.js');
const Resource = require('lib/models/Resource.js');
const Setting = require('lib/models/Setting').default;

View File

@@ -1,7 +1,7 @@
const BaseApplication = require('lib/BaseApplication').default;
const { FoldersScreenUtils } = require('lib/folders-screen-utils.js');
const ResourceService = require('lib/services/ResourceService');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const Folder = require('lib/models/Folder.js');
const BaseItem = require('lib/models/BaseItem.js');
const Note = require('lib/models/Note.js');

View File

@@ -5,7 +5,7 @@ const Logger = require('lib/Logger').default;
const { dirname } = require('lib/path-utils');
const { DatabaseDriverNode } = require('lib/database-driver-node.js');
const { JoplinDatabase } = require('lib/joplin-database.js');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const Folder = require('lib/models/Folder.js');
const Note = require('lib/models/Note.js');
const Setting = require('lib/models/Setting').default;

View File

@@ -1,6 +1,6 @@
const yargParser = require('yargs-parser');
const { _ } = require('lib/locale');
const { time } = require('lib/time-utils.js');
const time = require('lib/time').default;
const stringPadding = require('string-padding');
const Logger = require('lib/Logger').default;

View File

@@ -1,14 +1,15 @@
const { BaseCommand } = require('./base-command.js');
const BaseItem = require('lib/models/BaseItem');
const BaseModel = require('lib/BaseModel');
const BaseModel = require('lib/BaseModel').default;
const { toTitleCase } = require('lib/string-utils.js');
const { reg } = require('lib/registry.js');
const markdownUtils = require('lib/markdownUtils').default;
const { Database } = require('lib/database.js');
const shim = require('lib/shim').default;
class Command extends BaseCommand {
usage() {
return 'apidoc';
return 'apidoc <file>';
}
description() {
@@ -35,7 +36,7 @@ class Command extends BaseCommand {
return markdownUtils.createMarkdownTable(headers, tableFields);
}
async action() {
async action(args) {
const models = [
{
type: BaseModel.TYPE_NOTE,
@@ -112,6 +113,51 @@ class Command extends BaseCommand {
lines.push('');
lines.push('\tcurl http://localhost:41184/tags?fields=id');
lines.push('');
lines.push('By default API results will contain the following fields: **id**, **parent_id**, **title**');
lines.push('# Pagination');
lines.push('');
lines.push('All API calls that return multiple results will be paginated. The actual results will be under the `items` key, and if there are more results, there will also be a `cursor` key, which allows you to fetch the next results. If the `cursor` key is not present, it means you have reached the end of the data set.');
lines.push('');
lines.push('You can specify how the results should be sorted using the `order_by` and `order_dir` query parameters, and you can specify the number of items to be returned using the `limit` parameter (the maximum being 100 items).');
lines.push('');
lines.push('The following call for example will initiate a request to fetch all the notes, 10 at a time, and sorted by "updated_time" ascending:');
lines.push('');
lines.push('\tcurl http://localhost:41184/notes?order_by=updated_time&order_dir=ASC&limit=10');
lines.push('');
lines.push('This will return a result like this');
lines.push('');
lines.push('\t{ "items": [ /* 10 notes */ ], "cursor": "somecursor" }');
lines.push('');
lines.push('Then you will resume fetching the results using this query:');
lines.push('');
lines.push('\tcurl http://localhost:41184/notes?cursor=somecursor');
lines.push('');
lines.push('Note that you only need to pass the cursor to the next request, as it will continue the fetching process using the same parameters you initially provided.');
lines.push('');
lines.push('Eventually you will get some results that do not contain a "cursor" paramater, at which point you will have retrieved all the results');
lines.push('');
lines.push('As an example the pseudo-code below could be used to fetch all the notes:');
lines.push('');
lines.push('```javascript');
lines.push(`
async function fetchJson(url) {
return (await fetch(url)).json();
}
async function fetchAllNotes() {
let query = '';
const url = 'http://localhost:41184/notes';
do {
const response = await fetchJson(url + query);
console.info('Printing notes:');
console.info(response.items);
query = '?cursor' + response.cursor;
} while (response.cursor)
}`);
lines.push('```');
lines.push('');
lines.push('# Error handling');
lines.push('');
@@ -314,7 +360,9 @@ class Command extends BaseCommand {
}
}
this.stdout(lines.join('\n'));
const outFilePath = args['file'];
await shim.fsDriver().writeFile(outFilePath, lines.join('\n'), 'utf8');
}
}

View File

@@ -1,7 +1,7 @@
const { BaseCommand } = require('./base-command.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const shim = require('lib/shim').default;
class Command extends BaseCommand {

View File

@@ -1,7 +1,7 @@
const { BaseCommand } = require('./base-command.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const BaseItem = require('lib/models/BaseItem.js');
const Note = require('lib/models/Note.js');

View File

@@ -1,7 +1,7 @@
const { BaseCommand } = require('./base-command.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const Note = require('lib/models/Note.js');
class Command extends BaseCommand {

View File

@@ -1,9 +1,9 @@
const { BaseCommand } = require('./base-command.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const Note = require('lib/models/Note.js');
const { time } = require('lib/time-utils.js');
const time = require('lib/time').default;
class Command extends BaseCommand {
usage() {

View File

@@ -45,10 +45,12 @@ class Command extends BaseCommand {
const startDecryption = async () => {
this.stdout(_('Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.'));
while (true) {
try {
const result = await DecryptionWorker.instance().start();
if (result.error) throw result.error;
const line = [];
line.push(_('Decrypted items: %d', result.decryptedItemCount));
if (result.skippedItemCount) line.push(_('Skipped items: %d (use --retry-failed-items to retry decrypting them)', result.skippedItemCount));

View File

@@ -6,7 +6,7 @@ const { app } = require('./app.js');
const { _ } = require('lib/locale');
const Note = require('lib/models/Note.js');
const Setting = require('lib/models/Setting').default;
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
class Command extends BaseCommand {
usage() {

View File

@@ -1,6 +1,6 @@
const { BaseCommand } = require('./base-command.js');
const InteropService = require('lib/services/interop/InteropService').default;
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const { app } = require('./app.js');
const { _ } = require('lib/locale');

View File

@@ -1,7 +1,7 @@
const { BaseCommand } = require('./base-command.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const Note = require('lib/models/Note.js');
class Command extends BaseCommand {

View File

@@ -1,6 +1,6 @@
const { BaseCommand } = require('./base-command.js');
const InteropService = require('lib/services/interop/InteropService').default;
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const { cliUtils } = require('./cli-utils.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');

View File

@@ -1,12 +1,12 @@
const { BaseCommand } = require('./base-command.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const Folder = require('lib/models/Folder.js');
const Setting = require('lib/models/Setting').default;
const Note = require('lib/models/Note.js');
const { sprintf } = require('sprintf-js');
const { time } = require('lib/time-utils.js');
const time = require('lib/time').default;
const { cliUtils } = require('./cli-utils.js');
class Command extends BaseCommand {

View File

@@ -1,7 +1,7 @@
const { BaseCommand } = require('./base-command.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const Folder = require('lib/models/Folder.js');
const Note = require('lib/models/Note.js');

View File

@@ -1,7 +1,7 @@
const { BaseCommand } = require('./base-command.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const Folder = require('lib/models/Folder.js');
const Note = require('lib/models/Note.js');

View File

@@ -2,7 +2,7 @@ const { BaseCommand } = require('./base-command.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');
const Folder = require('lib/models/Folder.js');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
class Command extends BaseCommand {
usage() {

View File

@@ -2,7 +2,7 @@ const { BaseCommand } = require('./base-command.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');
const Note = require('lib/models/Note.js');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
class Command extends BaseCommand {
usage() {

View File

@@ -1,6 +1,6 @@
const { BaseCommand } = require('./base-command.js');
const { _ } = require('lib/locale');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const Folder = require('lib/models/Folder.js');
const uuid = require('lib/uuid').default;

View File

@@ -1,7 +1,7 @@
const { BaseCommand } = require('./base-command.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const { Database } = require('lib/database.js');
const Note = require('lib/models/Note.js');

View File

@@ -2,8 +2,8 @@ const { BaseCommand } = require('./base-command.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');
const Tag = require('lib/models/Tag.js');
const BaseModel = require('lib/BaseModel.js');
const { time } = require('lib/time-utils.js');
const BaseModel = require('lib/BaseModel').default;
const time = require('lib/time').default;
class Command extends BaseCommand {
usage() {

View File

@@ -1,9 +1,9 @@
const { BaseCommand } = require('./base-command.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const Note = require('lib/models/Note.js');
const { time } = require('lib/time-utils.js');
const time = require('lib/time').default;
class Command extends BaseCommand {
usage() {

View File

@@ -1,7 +1,7 @@
const { BaseCommand } = require('./base-command.js');
const { app } = require('./app.js');
const { _ } = require('lib/locale');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
class Command extends BaseCommand {
usage() {

View File

@@ -1,6 +1,6 @@
'use strict';
const { time } = require('lib/time-utils.js');
const time = require('lib/time').default;
const Logger = require('lib/Logger').default;
const Resource = require('lib/models/Resource.js');
const { dirname } = require('lib/path-utils');

View File

@@ -1,6 +1,6 @@
const Folder = require('lib/models/Folder.js');
const Tag = require('lib/models/Tag.js');
const BaseModel = require('lib/BaseModel.js');
const BaseModel = require('lib/BaseModel').default;
const ListWidget = require('tkwidgets/ListWidget.js');
const _ = require('lib/locale')._;

View File

@@ -54,15 +54,25 @@ export default class PluginRunner extends BasePluginRunner {
};
}
async run(plugin:Plugin, sandbox:Global) {
const vmSandbox = vm.createContext(this.newSandboxProxy(plugin.id, sandbox));
async run(plugin:Plugin, sandbox:Global):Promise<void> {
return new Promise((resolve:Function, reject:Function) => {
const onStarted = () => {
plugin.off('started', onStarted);
resolve();
};
try {
vm.runInContext(plugin.scriptText, vmSandbox);
} catch (error) {
this.logger().error(`In plugin ${plugin.id}:`, error);
return;
}
plugin.on('started', onStarted);
const vmSandbox = vm.createContext(this.newSandboxProxy(plugin.id, sandbox));
try {
vm.runInContext(plugin.scriptText, vmSandbox);
} catch (error) {
reject(error);
// this.logger().error(`In plugin ${plugin.id}:`, error);
// return;
}
});
}
}

View File

@@ -17,12 +17,23 @@ tasks.prepareBuild = {
excluded: ['node_modules'],
});
await utils.copyDir(`${__dirname}/locales-build`, `${buildDir}/locales`);
await utils.copyDir(`${__dirname}/../patches`, `${buildDir}/patches`);
await tasks.copyLib.fn();
await utils.copyFile(`${__dirname}/package.json`, `${buildDir}/package.json`);
await utils.copyFile(`${__dirname}/package-lock.json`, `${buildDir}/package-lock.json`);
await utils.copyFile(`${__dirname}/gulpfile.js`, `${buildDir}/gulpfile.js`);
// Import all the patches inside the CliClient directory
// and build file. Needs to be in CliClient dir for when running
// in dev mode, and in build dir for production.
const localPatchDir = `${buildDir}/patches`;
await fs.remove(localPatchDir);
await fs.mkdirp(localPatchDir);
await utils.copyDir(`${__dirname}/../patches/shared`, `${localPatchDir}`, { delete: false });
await utils.copyDir(`${__dirname}/../patches/node`, `${localPatchDir}`, { delete: false });
await fs.remove(`${__dirname}/patches`);
await utils.copyDir(`${localPatchDir}`, `${__dirname}/patches`);
const packageRaw = await fs.readFile(`${buildDir}/package.json`);
const package = JSON.parse(packageRaw.toString());
package.scripts.postinstall = 'patch-package';

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -38,33 +38,33 @@ locales['tr_TR'] = require('./tr_TR.json');
locales['vi'] = require('./vi.json');
locales['zh_CN'] = require('./zh_CN.json');
locales['zh_TW'] = require('./zh_TW.json');
stats['ar'] = {"percentDone":79};
stats['ar'] = {"percentDone":78};
stats['eu'] = {"percentDone":33};
stats['bs_BA'] = {"percentDone":82};
stats['bg_BG'] = {"percentDone":65};
stats['ca'] = {"percentDone":95};
stats['hr_HR'] = {"percentDone":27};
stats['cs_CZ'] = {"percentDone":99};
stats['da_DK'] = {"percentDone":73};
stats['cs_CZ'] = {"percentDone":98};
stats['da_DK'] = {"percentDone":72};
stats['de_DE'] = {"percentDone":97};
stats['et_EE'] = {"percentDone":65};
stats['en_GB'] = {"percentDone":100};
stats['en_US'] = {"percentDone":100};
stats['es_ES'] = {"percentDone":99};
stats['es_ES'] = {"percentDone":98};
stats['eo'] = {"percentDone":37};
stats['fr_FR'] = {"percentDone":98};
stats['gl_ES'] = {"percentDone":42};
stats['id_ID'] = {"percentDone":92};
stats['it_IT'] = {"percentDone":98};
stats['nl_BE'] = {"percentDone":33};
stats['nl_NL'] = {"percentDone":94};
stats['nl_BE'] = {"percentDone":33};
stats['nb_NO'] = {"percentDone":87};
stats['fa'] = {"percentDone":82};
stats['pl_PL'] = {"percentDone":97};
stats['pt_PT'] = {"percentDone":98};
stats['pt_BR'] = {"percentDone":95};
stats['pt_BR'] = {"percentDone":96};
stats['ro'] = {"percentDone":77};
stats['sl_SI'] = {"percentDone":42};
stats['sl_SI'] = {"percentDone":41};
stats['sv'] = {"percentDone":70};
stats['th_TH'] = {"percentDone":52};
stats['vi'] = {"percentDone":84};
@@ -74,6 +74,6 @@ stats['ru_RU'] = {"percentDone":94};
stats['sr_RS'] = {"percentDone":70};
stats['zh_CN'] = {"percentDone":95};
stats['zh_TW'] = {"percentDone":94};
stats['ja_JP'] = {"percentDone":97};
stats['ja_JP'] = {"percentDone":99};
stats['ko'] = {"percentDone":99};
module.exports = { locales: locales, stats: stats };

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More