Commit graph

49 commits

Author SHA1 Message Date
ivk
439260efbb [desktop] Fix opening files & directories on Linux
Electron uses xdg-open to open files. On GNOME it will try to use gio
open which reads user configs from a few files. To detect those config
files it uses `XDG_CURRENT_DESKTOP` env variable.

Electron overwrites `XDG_CURRENT_DESKTOP` to enable some compatibility
functions in Chromium. This breaks gio because it can't locate the
config files for default apps. It can be reproduced on Ubuntu with
GNOME. There is a fix in Electron to restore the env for opening files,
but it doesn't work.

We worked around that by invoking xdg-open directly with correct env.

Additionally, we fixed opening the directories having the same issue and
getting stuck by using showItemInFolder instead. This also has an
additional benefit of highlighting the file in the file manager.

Close #9696

Co-authored-by: hrb-hub <hrb-hub@users.noreply.github.com>
Co-authored-by: wrd <wrd@tutao.de>
Co-authored-by: paw <paw-hub@users.noreply.github.com>
2025-09-26 12:18:38 +02:00
ivk
1eef49668d Make sure the offline storage version is consistent with migrations
There was a missing check that migrations bring the version to the
latest one.

In addition, we were checking the version against non-populated
metadata which worked accidentally on the first run because
`undefined < 1 === false`.
2025-08-29 10:59:04 +02:00
ivk
13b4dba07a [build] Revert node make default stage to local 2025-08-29 10:26:11 +02:00
nig
cb6fda94ba
[build] add localSecure option to make.js
node make localSecure is a shorthand for
node make host "https://app.local.tuta.com:9000"
2025-07-25 10:08:02 +02:00
mup
d3398d6bf6 Adds new open with devTools option to node make
Co-authored-by: and <and@tutao.de>
2025-07-10 14:09:44 +02:00
Kinan
edbf281b88
switch to typeIds and attrIds, add SystemMV126, TutanotaMV86, BaseMV2
Refactor our instance deserialization/serialization pipeline, both on
TypeScript and on Rust [sdk] to use typeId and attributeIds instead of
typeNames and attributeNames. We furthermore ignore cardinalities
on associations until the instance layer and always
store associations as arrays. This commit introduces **eventual
consistency** on the client, i.e. we are from now on always storing data
in the newest schema format (activeApplicationVersionsForWritingSum)
which ensures that all data is already available on the client after
updating the client to a newer version. This removes the need for
offline migrations on the client and also removes backward migrations
on the server. Furthermore, the server model types are now available
on the client, retrievable through the ApplicationTypesFacade. This is
our first step towards FastSync.

Co-authored-by: nig <nig@tutao.de>
Co-authored-by: abp <abp@tutao.de>
Co-authored-by: jomapp <17314077+jomapp@users.noreply.github.com>
Co-authored-by: map <mpfau@users.noreply.github.com>
Co-authored-by: sug <sug@tutao.de>
Co-authored-by: Kinan <104761667+kibibytium@users.noreply.github.com>
2025-04-28 12:44:35 +02:00
Kinan
707a5b4ae6
[build] add desktop-build-only flag 2025-02-21 18:01:54 +01:00
mup
e5a284ed72 Add separated ESBuild for calendar build
This commit adds an argument to ESBuild allowing to choose between
mail app or calendar app
2024-07-29 14:44:20 +02:00
nig
978d9780c2 fix linter errors for missing node: protocol
close #4367
2023-05-05 11:29:09 +02:00
nig
8f92c9faf3 make node make -d work on windows
there's no bash there so we can run electron directly with npx
2023-02-10 08:56:25 +00:00
ivk
50b23ebd1b Run prettier on the whole project 2022-12-27 16:08:23 +01:00
nig
492907a72e [desktop] add missing console.info method to patched logger 2022-07-21 16:13:32 +02:00
jom
1660ebaab1 Adapt to gift cards model change 2022-06-13 13:34:56 +02:00
jom
ca177b74f5
Add framework for migrating offline database
When there is a model change on the server that would conflict with
the entities stored in the offline database, we need to do a migration
We generate some model diffs with the code generator and use them
for a compile-time check.

Co-authored-by: ivk <ivk@tutao.de>
2022-05-25 16:30:34 +02:00
ivk
3f7c080055
[build] esbuild for dev build 2022-05-10 17:53:21 +02:00
jom
636501198b [maintenance] update commander to v9 2022-05-03 15:57:33 +02:00
sas
7cb4828c56 Introduce persistent cache for desktop, close #3823 2022-02-15 09:54:54 +01:00
jom
c3de877fce [build] refactor make.js + android.js to modularise dev build 2021-11-09 09:23:59 +01:00
thp
cda846c8ec [build] Run Flow repeatedly in watch mode, fix #3438 2021-09-07 15:57:05 +02:00
rosso-ptg
c00ef7e4f4
Make build server detect changes to build config. Fix #3426 (#3439) 2021-09-07 15:45:28 +02:00
jom
fec4da4a90 fixes from review 2021-08-11 11:23:35 +02:00
jom
cafabb9acd flow 0.152.0 2021-08-11 11:23:35 +02:00
jom
2dafb3a942 [build] don't hang when build is complete, fix flow errors 2021-08-03 17:30:57 +02:00
ivk
6042ed01d5 [build] Fix import in make.js 2021-08-03 16:05:36 +02:00
jom
7131285654 [build] use async/await in make.js 2021-08-03 12:14:31 +02:00
jom
a40da28904 Add always block option for image loading 2021-08-03 12:14:31 +02:00
jom
f3227aa155
Enable spawning multiple build servers
And we spawn different build servers for make.js and test.js,
as well as splitting their output directories

fix #3233
2021-07-21 10:41:40 +02:00
thp
7a1e210255 Move build tools into own npm module. Fix #3185 2021-06-28 16:52:29 +02:00
ivk
e6d865b1b6 [build] Fix build without watch, disable watch for now 2021-06-21 15:37:53 +02:00
thp
ffc48f4a23 Changes from review by IVK 2021-06-15 14:20:32 +02:00
thp
2102e6a6c7 Refactor build tools. Fix #3104 2021-06-15 14:20:32 +02:00
jom
7cd7e08176 Restyle banner in mail viewer
fix #3146
2021-06-10 10:47:00 +02:00
nig
40a51cb8ec [desktop] add spell checking, close #1069
adds spell check & correction capabilities to the context menu,
including the ability to change the checked language.

dictionaries are pulled from <updateUrl>/../dictionaries/ except
for custom builds. in that case, the downloader is pointed to
mail.tutanota.com/desktop/dictionaries/

the dist.js build script gained a --get-dicts flag, which will
result in the dictionaries released with the used electron version being
downloaded from

https://github.com/electron/electron/releases/
download/v${version}/hunspell_dictionaries.zip

and extracted into a directory next to the given --out-dir
or build/dist/dictionaries during the build.

should the build not create .deb packages, the dicts
will end up next to the desktop installers since the
local tutadb will serve them from there.
2021-05-27 13:14:30 +02:00
ivk
8a7ef02697
[build] Wait for Flow 2021-01-27 13:40:47 +01:00
ivk
79f3fff51a
Use Rollup & Nollup for build 2021-01-22 12:23:22 +01:00
map
4816356aad 3ds2 implementation, see server side issue #667 2020-12-22 12:07:14 +01:00
nig
1f4a38de17 use full os.hostname for local restUrl in dist & make script
close #2205
2020-08-13 11:13:48 +02:00
nig
a61c8fe96a [desktop] define options object for desktopBuilder 2020-04-21 09:50:45 +02:00
ivk
9946c96ce1
Use real version and different identifier for desktop debug build 2020-01-30 12:54:06 +01:00
ivk
48e8a91396 [dev] Fix importing files during bootstrap
This commit fixes loading the debug build in Safari and occasional
failure to load in other browsers.

node server didn't work with Safari, I noticed that it tries to load js
files without .js extension. I compared debugging with Chrome and
noticed that we do some replacement in system-resolve.js. This was not
running in Safari and in fact system-resolve was not loaded at all in
Safari. I checked where it's imported and there was an error in make.js
where it was not waiting for the import of system-resolve to import
src/app.js. This was a timing issue and it explains why we had such a
problem in other browsers but only occasionally: sometimes it was fast
enough to patch systemjs when it was from disk/code cache.
2019-10-30 12:11:03 +01:00
ivk
78dadcf131 Update mithril, get rid of NavButton 2019-08-16 16:25:01 +02:00
nig
fd2ea337e8 Merge branch 'master' into turboadmin 2019-04-09 09:29:28 +02:00
ivk
e122b6e5c4 Sort metadata entries by timestamp 3 (without updating elementData)
Also fixed binary encoding for numbers
2019-02-21 17:33:58 +01:00
nig
41303beefe preparation for turbo admin 2019-02-13 13:48:46 +01:00
ivk
ae39c13559 Fix error on startup for mobile apps 2019-01-31 14:58:51 +01:00
amoehle
b866f9ba9f fix local and dist build 2018-12-21 13:29:35 +01:00
amoehle
ab68d63bcc fix local build browser url 2018-12-21 09:19:23 +01:00
nig
d494814a40 squash commit
added mailto handling to desktop client. closes #670
proper handling of logout event, closes #682
made winsigner optional, made client version available from devTools, fixed #678
made F5 refresh not break the app. closes #673
fixed #674
reenabled HTML5 notifications. fixes #672 once tutanota starts showing notifications for new mail.
fixed #691 & fixed #716
integration of IPC into WorkerProtocol, closes #669
public key for code signing
code signing for the linux client
fixed Jenkinsfile to correctly link snapshot
upgrade to electron 4.0.0-beta.7 #718
made the add 2FA dialog not reload the page #718
added support for Ctrl + Scroll zooming. #755
added F11 maximize/unmaximize support, #755
added Ctrl + P printing support, #755
fixed make script for desktop client
A search bar for the Desktop Client, #755
added async imports for nativewrappercommands
fixed focus loss for desktop ctrl+f search bar
Context menu for the Desktop client, #763
Code signing for mac & windows
linking of mac & windows snapshots
targetURL for mac snapshot
Settings View for the Desktop Client
better icons
prevented handleMailto from being called before app is ready
made showRequestPasswordDialog focus the input element
implementation of link tooltips for desktop
restricted mouse hover URL reveal for desktop to anchor elements inside the mail viewer
rich text toolbar overhaul, #873
upgrade to electron 4.0.0-beta.9
2018-12-20 12:52:33 +01:00
mpfau
ae176ec7ab updated build to work on single dir for webapp and desktop 2018-12-20 12:49:53 +01:00
Renamed from build.js (Browse further)