* add button to About box to copy Joplin's information to the clipboard
On certain OS it is not possible to copy the text in the About window.
This change allows to copy that info to the Clipboard.
Due to some shortfalls in Electron, it is not possible to set `defaultId` and `cancelId` to 0.
(Actually one can set them to 0, but the result is not what one would expect.)
Thus I had to move the default `OK` button to the left.
I also added a hack to position the `OK` button approximately in the middle of the dialog box (if the copyLabel is not longer than 14 characters).
* remove hack to position button
* add a new bridge function showMessageBox
The function returns the index of the clicked button.
* we don't need the first 3 lines (product name and copyright)
* Ensure after a note is deleted the next note is given focus.
* Fix handling of focus when navigating away from multiple selections.
* Refocus after note deletion.
* Mintor refactor.
* Clean up.
* Remove accidental white space change.
* Remove accidental white space change.
* Trying to get TuiEditor to work
* Tests with TinyMCE
* Fixed build
* Improved asset loading
* Added support for Joplin source blocks
* Added support for Joplin source blocks
* Better integration
* Make sure noteDidUpdate event is always dispatched at the right time
* Minor tweaks
* Fixed tests
* Add support for checkboxes
* Minor refactoring
* Added support for file attachments
* Add support for fenced code blocks
* Fix new line issue on code block
* Added support for Fountain scripts
* Refactoring
* Better handling of saving and loading notes
* Fix saving and loading ntoes
* Handle multi-note selection and fixed new note creation issue
* Fixed newline issue in test
* Fixed newline issue in test
* Improve saving and loading
* Improve saving and loading note
* Removed undeeded prop
* Fixed issue when new note being saved is incorrectly reloaded
* Refactoring and improve saving of note when unmounting component
* Fixed TypeScript error
* Small changes
* Improved further handling of saving and loading notes
* Handle provisional notes and fixed various saving and loading bugs
* Adding back support for HTML notes
* Added support for HTML notes
* Better handling of editable nodes
* Preserve image HTML tag when the size is set
* Handle switching between editor when the note has note finished saving
* Handle templates
* Handle templates
* Handle loading note that is being saved
* Handle note being reloaded via sync
* Clean up
* Clean up and improved logging
* Fixed TS error
* Fixed a few issues
* Fixed test
* Logging
* Various improvements
* Add blockquote support
* Moved CWD operation to shim
* Removed deleted files
* Added support for Joplin commands
* ElectronClient window minimum size set
Hardcoded minimum width and height of 100 px.
Signed-off-by: daukadolt <daulet.amirkhanov.official@gmail.com>
* Set Electron window position if outside displays
Set Electron window at the center of primaryDisplay if BrowserWindow is not on any displays.
Signed-off-by: daukadolt <daulet.amirkhanov.official@gmail.com>
* Set Electron window default size dependent on screen
Set Electron window defaultWidth, defaultHeight to 80% of primary display workArea width, height, respectively.
Signed-off-by: daukadolt <daulet.amirkhanov.official@gmail.com>
* Hotfixing Electron defaultHeight depending on width, not height
Hotfix of a typo that calculates Electron app's default height at first run using primary screen's width, not height.
Signed-off-by: daukadolt <daulet.amirkhanov.official@gmail.com>
* Refactoring Electron app defaultWidth/defaultHeight setup
Setting defaultWidth/defaultHeight directly without extra variables.
Rounding defaultWidth/defaultHeight.
Signed-off-by: daukadolt <daulet.amirkhanov.official@gmail.com>
* installed eslint-plugin-react-hooks and set up rules of hooks
* fixed linter error
* changed react-hooks/exhaustive-deps option to error
* changed spaces to tabs in eslint config
* Use the strongly recommended asar packing on linux
* Use asar for macOS packaging
* Update package.json
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
* Add word counter logic
Fix errant whitespace changes
* update to using react hooks
Use React hooks
remove extra theme set
Update styling function
* correct linting and package lock issues
* WIP: update button functionality
* Add line count and update styling from feedback
* corrected file location to fit new build
* Add a Basic Resource Screen
Implement "Open in External Viewer"
Add @types/lodash as a devDependency, prettyBytes for pretty printing bytes
Implement display of Orphaned Resources
Implement deletion of Resources
Implement sorting logic
Minor Styling
Remove Compiled js
Review - No more Orphan display, LIMIT resources
ResourceScreen - use DB for sorting
Database - Version 28 (Index on Resource size)
Add compiled JS with eslint --fix
Add ResourceScreen to ignore files, delete from repo
Disable enforce-react-hooks
* Second review round
* Update ResourceScreen.tsx
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
* Super basic QuickAction is working!
* QuickAction successfully creates notes
* Update icons
* Update icons and support new to-do
* Update icons and support new to-do
* Fixed
* Extract QuickActions
* It works as long as you go out of the edit screen (saving is not sufficient)
* working? but still kinda buggy...
* Cleanup
* Cleanup
* Cleanup
* Use the same pattern as onJoplinLinkClick_
* Cleanup
* Cleanup
* Remove pluginAssets/index.js change
* manual Andoid linking
* Transition QuickActions.js to .ts
* Unstage QuickActions.js in favor of .ts
* Move QuickActions out of lib/
* Add comment about userInfo in QuickActions
* Remove redundant QuickActions file
* Remove pluginAssets/index to resolve conflict
* Update CONTRIBUTING.md to include test runner troubleshooting
* Add `npm run tsc` to Unit Tests docs
Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
This is only a minor bump but several issues have been fixed since 7.1.9:
- Fixed an issue where sending complex objects over IPC could in some cases cause the renderer process to be terminated. electron/electron#21922
- Fixed crash with Date.toLocaleString for invalid locale and locale of the format aa@BB. electron/electron#21969
- Fixed flash plugin not working. electron/electron#22109
- Fixed issue where renderers could crash during GC when using the contextBridge module. electron/electron#22112
- Fixed netLog.stopLogging returning undefined instead of the path to the log. electron/electron#21988
- Fixed an edge case in checkbox logic on Windows. electron/electron#21860
- Fixed an issue where window.print() only worked once on a single BrowserWindow. electron/electron#21911
- Fixed an issue where the credits set in About Panel credits were not dark mode aware on macOS. electron/electron#21924
- Fixed error thrown when importing powerMonitor on Linux before app's 'ready' event. electron/electron#21941
- Fixed fuzzy font rendering when hot-plugging displays on macOS Catalina. electron/electron#21872
- Fixed BrowserWindow.setFocusable(true) not working on Windows. electron/electron#21855
- Fixed set-cookie header not passed in net module. electron/electron#21770
- Fixed an issue where custom stream protocols would sometimes not complete responses when the data stream ended. electron/electron#21758
- Fixed crash when restoring minimized hidden window on Windows. electron/electron#21820
- Fixed issue where non-zero size pixels in CSS styles could be rounded down to zero size pixels. electron/electron#21857
- Fixed memory leak when using javascript generator functions. electron/electron#21773
- Fixed potential hang when sending synchronous IPC messages on process shutdown. electron/electron#21776
* Support export of multiple notes to pdf files.
* Update in response to review comments.
Find unique filenames when exporting multiple pdfs.
Simplify delay.
* Eliminate redundant retries and fix error message in fs shim unique filename search.
* Make output filenames consistent between single and multi pdf export.
* Remove unnecessary white space.
* Remove legacy sleep in pdf export and add a little more variability to unique filename search.
Builds in CI are done from a 'detached HEAD' state. Thus `git rev-parse --abbrev-ref HEAD` always returns HEAD, which is not master.
Releases are always created from the master branch, thus HEAD -> master.
* Add renderer plugin to handle tabs in code blocks.
* Add plugin to renderer package list.
* Attempt to fix unrelated linter issues.
* Fix unrelated linter problems.
The problems exist on master prior to the branch.
* Fix more inherited linter problems.
* Do not show "failed to print" warning dialog after cancelling print.
* Add reason to error string.
* Reform message string.
* Ensure OK button is displayed on error dialog.
* Support multi-line selections for creating ordered lists, unordered lists, checkboxes.
* Modify to maintain previous behaviour wrt insertion of new line if not on empty line.
* Review update: rename variables (or eliminate them).
* Review update: variable naming.
* Add colour hints to the local search bar.
* Refactor.
* Refactor.
* Fix annoying flicker when entering first query character.
* Refactor in response to review comments.
Cache the information at the source, remove state updates during render.
* Move cached data into searchbar component.
* Refactor.
* Show number of matches and disable prev/next buttons when no matches.
* Improve no matches message.
* More note searchbar enhancements.
Indicate selected match
Fade search result text
Ctrl-F selects input content upon repeat
* Update following review.
Modify message to remove need for translation.
Flatten properties structure.
* Made tweaks to avoid having two queries in the state
* Cache searchbox background colour to stop compoenent flashing.
* Update NoteSearchBar.jsx
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
* Emphasise note title and de-emphasise note toolbar.
* Remove redundant titles from pre-packaged notes.
* Revert additions to theme.
* Revert de-emphasis of note toolbar icons.
* Revert bolding of title.
* Undo change to theme
* Use h1 style as basis for title editor style.
Times a factor to make up for html scaling.
* Use text style as basis for editor title style, scaled to match html h1.
* Add version info to profile error message. Add profile version to desktop About Box.
* Add profile error to log.
* Use shim to retrive version number.
* Refactor to use registry instead of BaseModel to get database.
* Remove call to logger.
* Improve code readability.
This is only a minor bump but several issues have been fixed since 7.1.5.
The most pressing one that we've experienced for a long time:
default button in dialog not working on macOS
https://github.com/electron/electron/issues/21633
Follow up to #893
Now using middleware to set the tags when a note is selected
This avoids the ugly code in the NoteTextComponent where we determine
if tags are to be fetched, identify if they have been modified, fetch
them and then dispatch an action to update the store which might
again re-render the component.
Also implements style related fixes from #1000
Signed-off-by: Abijeet <abijeetpatro@gmail.com>
Fixes: #469
* Add external editor actions to the note context menu.
Also start up external editor on note double click.
These changes enhance user experience by placing the actions where
they feel natural.
* Remove double-click behaviour and change menu text.
Changes in response to review comments.
* Move handling of external editor actions to main screen from note text
This is to ensure correct behaviour even when the user launches the
action on a note in the list that is under the pointer, but not selected.
* Move external edit actions to NoteListUtils from MainScreen.
* Reconnect external edit action in main edit menu.
* Started updating to use external renderer package
* Added way to build renderer assets
* Done mobile compatilibty
* Upgrade joplin-renderer
* Added joplin-renderer package
* Moved button row to separate component file and started Sharing dialog
* Adding Sharing dialog
* Applied "npx react-codemod rename-unsafe-lifecycles"
* More UI
* Tools: Improved TypeScript integration
* Improved share dialog
* Tools Added support for translation validation in CI, and added support for plural translations
* Improved UI and sharing workflow
* Share workflow
* Cleaned up and improved sharing config error handling
* Fixed build scripts and doc for TypeScript
* Run linter
* Delete unused file
* Implement CssUtils
* Inject custom CSS styles
* Add info about custom CSS styles to README
* Add note that ElectronClient/app/app.js is generated
* Add support for Setting.TYPE_BUTTON
* Add buttons in Preferences to open custom CSS files
* Swap custom CSS filenames
* Swap custom CSS filenames
* Wrap "Edit" with translation fn
* Incorporate PR feedback from @laurent22
* Add openOrCreateFile to Settings
* Move openOrCreateFile to shim
* Removing header for now - see https://github.com/laurent22/joplin/pull/2099#discussion_r353120915
* Added highlight_mark token to Ace editor rules
* Fix edge case for highlight_mark Ace rule
* Add ==mark== rule only if plugin is enabled
* Rm temporary highlight class
* Require --open-dev-tools along with --env dev in command line options to make opening of Dev Tools optional when in Developer mode.
* Restore original lines then comment out the call to openDevTools
* Adding node counts for folders and tags
* Add unit tests
* Fix count update when the tag list for a note is updated
* Right align note counts and remove from the settings screen
* Folder note count calculation update to include descendants
* Update Setting.js
* Change count style and fix click on counts
* Fix tag/folder count update on delete/add note
* Review updates
* Add keyboard modes to editor (vim, emacs, default)
This adds a new option to settings, and then sets the
appropriate keyboard handler in the ace editor.
The "default" option is equivalent to the old keyboard
behaviour.
* Remove stray console.log
* Move the keyboard-mode setting to the general section
* Change `keyboardMode` setting to `editor.keyboardMode`
* Prevent horizontal scrolling on Linux when a scrollbar is present in the note list.
* max-width usage specifically to target Linux horizontal scroll problem.
* Add forkawesome icons
* Add resource icon for specific filetypes
* Ignore resource link styling on mobile
* whtiespace
* render txt icons and adjust icon sizes
* Replace fork-awesome font with inline svg so icons work on mobile
* Add comment describing the source of resource icons
* Added options for selecting layout
* Toggle through the layouts based on config
* Used redux state for getting layout settings
* Removed duplicated strings for layout options
* Moved option for selecting layouts to "View" menu
* Add menu item to toggle note list #1988
* Hiding the noteList now fully works + standardized casing for noteList #1988
* hiding verticalResizer to fully hide note list and its extra border #1988
* curly braces on the same line #1988
* fa-tasks is "less" worse as an icon for toggle note list #1988
* liking this icon a whole lot more
* removed useless width tweak
* Misc. typo and whitespace fixes
Found via `codespell -q 3 -S *.po,*.pot,./ElectronClient/app/locales,./ReactNativeClient/locales,./CliClient/locales -L adresse,ba,fonction,te,whet`
* Revert a previous change
* add setting: export.pdfPageSize
* create 2 settings: size and orientation
* export.pdfPageOrientation: use string instead of boolean
* add other page formats supported by Electron
The changelong text is truncated if it's longer than 1000 characters,
but avoids cutting off a partial line, unless that would lead to cutting
off too much of the text. An ellipsis is added to mark the truncation.
Additionally, when the changelong is truncated, it adds a "Full Release Notes"
button that opens the GitHub release page in a browser window.
* add checkmark to menu item, if Dev Tools are on
If one closed the dev tools window, one could think that the Dev Tools are closed.
This is not the case. After the next action, the window opens again. This can be
confusing, therefore I added a checkmark to the menu item so that it is very clear.
* fix no-case-declarations
* fix reducer issue
* set cancel as the default in dangerous operations, rename buttons (delete, remove) and context menu (for tags)
fixes#1662 (partially, because I can't fix the upstream issue, unless we update Electron)
* add default value for buttonLabel
* Revert "Revert "Desktop: Add ENEX to HTML export (#1795)""
This reverts commit 50b66cceca.
* Revert "Revert "Desktop, Cli: Fixed interop service so that it still allow auto-detecting importer based on format (required for Cli and for test units)""
This reverts commit c7c57ab2a5.
* Fix the .md importer
* Add comment re future refactor
* Rm importerClass for .md importer
* Fix EnexToMd module name
* Add `escape` to go back from Dropbox Login screen
* Add .vscode/ to .gitignore
* Remove call to enexXmlToMd
* The 2 enex importers have distinct functionality!
* Add tmp #deleteAllNotebooks
* checkbox state still not persisting
* images now fixed, but checkboxes still broken
* Figured out that #ipcProxySendToHost is important for handling checkbox
* cleanup closing br and en-todo tags + add notes
* Handle en-media, add NOTEs & TODOs, & format html
* Clean up some of the logging
* cleanHtml is a nice beautifier, but callback hell ensues...
* Rm #htmlFormat
* Recreating the xml actually seems to work
* Add test (not functional rn)
* Add test for checkboxes
* Add test for image en-media
* Separate tests into 2 function calls
* Clean up test
* Add `en-media-audio` test
* Add bad resource test
* Misc cleanup
* Rm SlateEditor files
* Misc cleanup
* Remove #deleteAllNotebooks button
* Add names to tests
* Extract resourceUtils
* Rm DropboxLoginScreen esc behavior, part of another PR
* Misc cleanup
* Improve audioElement, add attachment import support
* Misc cleanup
* Add svg test for enex_to_html
* Clean up test
* Set markup_language to MARKUP_LANGUAGE_HTML to tell renderer that the content is only HTML
* Rename to newModuleByFormat_ for clarity
* Add comment to clarify newModuleFromPath_
* Update eslint config
* Applied linter to lib
* Applied eslint config to CliClient/app
* Removed prettier due to https://github.com/prettier/prettier/pull/4765
* First pass on test units
* Applied linter config to test units
* Applied eslint config to clipper
* Applied to plugin dir
* Applied to root of ElectronClient
* Applied on RN root
* Applied on CLI root
* Applied on Clipper root
* Applied config to tools
* test hook
* test hook
* test hook
* Added pre-commit hook
* Applied rule no-trailing-spaces
* Make sure root packages are installed when installing sub-dir
* Added doc
* enable drag and drop fileURLs
* fix windows fileURL syntax
* introduce encodeURI function
* fixed encoding issue
* use path-utils.js to deal with fileURL path conversion
* add changes as requested
* Minor rewording 'On the' -> 'In the', additional info about attaching files
* change call of toFileProtocolPath
* enable test script to check syntax for all OS-platforms
* First pass of adding support for templates
* remove default value from template prompt
* Add template placeholder text
* Add mustache templates with datetime support for new notes
* Moved template code to utils, added separate prompt for templates
* Add templates to menu and allow for keyboad only use
* update template prompt for dark theme
* update with laurents suggestions, add refresh button
* revert template command, remove new note prompt
* show git branch and hash in About dialog
This additional info will only be shown, if the code is not an official release.
An official release is calculated as follows:
- current commit has a tag
- the tag contains the version number of the package
However, the information will always be printed to the console.
* info will now always be shown in About dialog (if available)
ElectronClient/app/compile-package-info.js: added warning
ElectronClient/app/app.js: push info conditionally to the message array
* use sprintf syntax
* Fixes#1186, #1354. Clears search when clicking on a notebook.
* use new resetSearch method where possible, replaced tabs with spaces
* replaced a couple more spaces with tabs
* Allow downloading resources automatically, on demand, or when loading note
* Make needToBeFetched calls to return the right number of resources
* All: Improved handling of resource downloading and decryption
* Desktop: Click on resource to download it (and, optionally, to decrypt it)
* Desktop: Better handling of resource state (not downloaded, downloading, encrypted) in front end
* Renamed setting to sync.resourceDownloadMode
* Download resources when changing setting
* tweaks
* removed duplicate cs
* Better report resource download progress
* Make sure resource cache is properly cleared when needed
* Also handle manual download for non-image resources
* More improvements to logic when downloading and decrypting resources
* Started revisions support
* More rev changes
* More rev changes
* More revs changes
* Fixed deletion algorithm
* More tests and moved updated time to separate field
* Display info when restoring note
* Better handling of existing notes
* wip
* Further improvements and fixed tests
* Better handling of changes created via sync
* Enable chokidar again
* Testing special case
* Further improved logic to handle notes that existed before the revision service
* Added tests
* Better handling of encrypted revisions
* Improved handling of deleted note revisions by moving logic to collectRevision
* Improved handling of old notes by moving logic to collectRevision()
* Handle case when deleting revisions while one is still encrypted
* UI tweaks
* Added revision service to mobile app
* Fixed config screens on mobile and desktop
* Enabled revisions on CLI app