Commit Graph

88 Commits

Author SHA1 Message Date
Tasos Boulis
c319038704 [MM-48184] Disallow edit/remove server if it is imported from GPO (#2353)
* Disallow edit/remove server if it is imported from GPO

* Fix width issue of team dropdown
2022-11-04 17:58:21 +02:00
Devin Binnie
635a41f998 [MM-47801][MM-45980] Added support for security-scoped bookmarks to allow the MAS build to save files wherever needed (#2315)
* First pass

* [MM-47801] Added support for security-scoped bookmarks to allow the MAS build to save files wherever needed
2022-10-25 15:02:00 +03:00
Devin Binnie
dc49003d38 [MM-47779] Prevent crash when either URL view or main window was destroyed first (#2300) 2022-10-21 09:19:33 -04:00
Tasos Boulis
f7f38102d8 Reposition 3-dot menu only when it is open (#2304) 2022-10-21 16:16:39 +03:00
Tasos Boulis
a4b05c601b Remove duplicate handler for showing file in folder (#2274) 2022-10-07 10:14:03 -04:00
Tasos Boulis
131b5fa2ac [MM-22239] Downloads dropdown (#2227)
* WIP: show/hide temp downloads dropdown

* WIP: Position downloads dropdown correctly under the button

* WIP: Use correct width for dropdown so that right radius and shadows are displayed

* WIP: Add items to download list after finished downloading

* WIP: Add download item base components

* Add "clear all" functionality

* Use type Record<> for downloads saved in config

* Add styling to files in the downloads dropdown

* Open file in folder when clicking it from downloads dropdown. Center svg in parent element

* Update scrollbar styling

* Update scrollbar styling

* Update state of downloaded items if deleted from folder

* Add progress bar in downloads

* Use "x-uncompressed-content-length" in file downloads.

* Keep downloads open when clicking outside their browserview

* Use correct color for downloads dropdown button

* Add better styling to downloads dropdown button

* Allow only 50 download files maximum. Oldest file is being removed if reached

* Autoclose downloads dropdown after 4s of download finish

* Add file thumbnails

* Dont show second dialog if first dismissed

* Add red badge when downloads running and dropdown closed

* Add menu item for Downloads

* Add support for more code file extensions

* Open downloads dropdown instead of folder from the menu

* Run lint:js and fix problems

* Add tests for utils

* Fix issue with dropdown not displaying

* Remove unecessary comment

* Move downloads to separate json file, outside Config

* Add downloads dropdown menu for the 3-dot button

* Dont show dev tools for downloads

* Add cancel download functionality

* Add dark mode styling

* Use View state for downloadsMenu open state

* Fix some style issues

* Add image preview for downloaded images

* Remove extra devTool in weback config

* Fix issue with paths on windows

* Align items left in downloads menu

* Use pretty-bytes for file sizes

* Show download remaining time

* Close downloads dropdown when clicking outside

* Show different units in received bytes when they are different from the total units (kb/mb)

* Dont hide downloads when mattermost view is clicked

* Keep downloads open if download button is clicked

* Use closest() to check for download clicks

* Fix unit tests.
Add tests for new Views and downloadManager
Add @types/jest as devDependency for intellisense

* Remove unecessary tsconfig for jest

* Fix types error

* Add all critical tests for downloadsManager

* WIP: add e2e tests for downloads

* WIP: add e2e tests for downloads

* Rename downloads spec file

* WIP: make vscode debugger work for e2e tests

* Remove unused mock

* Remove defaults for v4 config

* Use electron-mocha for e2e debugger

* Fix e2e tests spawning JsonFileManager twice

* Add async fs functions and add tests for download item UI

* Add async fs functions and add tests for download item UI

* Improve tests with "waitForSelector" to wait for visible elements

* Wait for page load before assertions

* Add tests for file uploads/downloads

* Dont show native notification for completed downloads if dropdown is open

* Increment filenames if file already exists

* Fix antializing in downloads dropdown

* Fix styling of downloads header

* Increase dimensions of green/red icons in downloads

* Fix styling of 3-dot button

* Fix unit tests

* Show 3-dot button only on hover or click

* PR review fixes

* Revert vscode debug fixes

* Mock fs.constants

* Mock fs instead of JsonFileManager in downlaods tests

* Mock fs instead of JsonFileManager in downlaods tests

* Add necessary mocks for downloads manager

* Mark file as deleted if user deleted it

* Fix min-height of downloads dropdown and 3-dot icon position

* Add more tests

* Make size of downloads dropdown dynamic based on content

* Combine log statements

* Close 3-dot menu if user clicks elsewhere

* Move application updates inside downloads dropdown

* Fix update issues

* Fix ipc event payload

* Add missing prop

* Remove unused translations

* Fix failing test

* Fix version unknown

* Remove commented out component
2022-10-07 11:40:27 +03:00
Devin Binnie
4c968dc747 Add webContents listeners to modals (#2247)
* Add webContents listeners to modals

* Fix tests
2022-09-01 09:41:06 -04:00
Devin Binnie
840c640fdf [MM-46405] Drop support for asterisk-based unreads (#2239) 2022-08-25 14:23:29 -04:00
Julian Mondragón
faf2dae74b MM-25003_Improve Onboarding screens for the desktop app - Intro Screen (#2220) 2022-08-16 12:33:03 -05:00
Devin Binnie
829b49571f [MM-43941] Optimize app resizing on Windows/Linux by waiting for the viewport to resize (#2204)
* [MM-43941] Optimize app resizing on Windows/Linux by waiting for the viewport to resize

* Some mitigations for Windows

* Make the logs sillier

* Fixed the no servers case

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-07-26 10:25:13 -04:00
Devin Binnie
59e4e7e516 [MM-14058] Add support for i18n (#2190)
* Add language files

* Add react-intl, mmjstool, setup for adding translations

* Translated main module

* Translations for renderer

* A few minor fixes

* More fixes

* Add CI, add missing menu translations, other cleanup

* Added setting to manually select the language of the app

* Force English for E2e

* Unit tests

* Fix mmjstool

* Move set language to before update menu

* PR feedback
2022-07-14 11:04:18 -04:00
Devin Binnie
c6cc870e19 [MM-44932] Fixed issue where deleting a server doesn't switch to another server (or show the new server modal) (#2174) 2022-06-28 08:00:25 -04:00
Devin Binnie
0c5b612489 [MM-45031] Don't use infinite background retry logic when the certificate is invalid (#2153) 2022-06-15 09:22:21 -04:00
Devin Binnie
37fe523e8c Fix issue with changing servers and tabs (#2126) 2022-05-26 14:17:44 -04:00
vas
4efac368d5 only refresh view when the server URL changes (MM-34565) (#2082) (#2094)
* only refresh view when the server URL changes (MM-34565)

Create views of current and incoming tabs indexed
by unique [URL, TABTYPE] tuples, and diffing them.
Tuples that are identical are recycled, merely
porting the new server name over.

* lint fixes

* WIP

* linting

* remove dependency on by, duad

* provide a more exaplanatory name for TabView.prototype.tuple (urlTypeTuple)

* minor improvements in viewManager

- remove stateful behaviour from makeView
- more descriptive variable names when looping
- create new arrays before sorting (sort is in-place by default)

* resolve linting errors
2022-05-20 11:06:43 -04:00
Devin Binnie
ebf5897f99 [MM-44022] Switch to using current BrowserView for determining window bounds for URL view (#2087) 2022-05-09 10:26:54 -04:00
Devin Binnie
90576570e2 [MM-43632] Ensure handleURLView is called when removing the target URL (#2074) 2022-04-25 17:18:23 -04:00
Devin Binnie
1c44c8527a E2E test fixups (#2045)
* Reinstall reporter and re-enable skipped tests

* Fixups for Linux

* Mac fixes

* Windows fixes

* Use keyboard shortcuts instead of menu for most menu actions

* Couple fixes

* One more fix for now

* Windows fixes

* Lint fixes

* Change up developer tools tests to be more consistent

* Fix key for mac

* Couple fixes for flaky tests/to avoid crashes on unload
2022-04-19 09:56:41 -04:00
Devin Binnie
a26e3caf23 [MM-43185] Fix size of BrowserView for URLView (#2050) 2022-04-18 11:29:23 -04:00
Devin Binnie
9b466b67f6 [MM-39793][MM-T2633] E2E Test: Use back button to return to the desktop app login - and fixes (#2043)
* [MM-39793][MM-T2633] E2E Test: Use back button to return to the desktop app login - and fixes

* Lint and test fixes
2022-04-08 15:04:00 -04:00
Devin Binnie
626fea84a5 [MM-41999] Add additional logging for debugging, allow users to change log level (#2031)
* Add debug logging switch

* Add tests

* Mock electron-log globally in jest

* New logs for debugging

* Switch to a dropdown to choose log levels

* Fix tests

* Update wording
2022-03-31 16:46:57 -04:00
Devin Binnie
3eb904cd67 [MM-41891] Improve error and reload states (#2019) 2022-03-18 10:16:12 -04:00
Devin Binnie
14197d1707 [MM-42086] Upgrade to Electron v17 (#2013)
* [MM-42086] Upgrade to Electron v17

* Added viewName

* merge'd

* Update package-lock

* Try it again
2022-03-14 10:09:36 -04:00
Guillermo Vayá
d2435a561c [MM-18552] Autoupdater (#1714)
* wip

* background download

* various fixes

* wip

* wokring autoupgrade

* fix menu

* fix windows

* cleanup

* add publishername

* fix messages and titles

* Test updates

* Moved module and added functionality to click icon to install (instead of just download)

* Add auto update setting, update on close app if downloaded

* Tests, changes for security fixes, update version number

* Update E2E tests

* Lint fix

* Update to latest electron-updater

* Revert to stable electron-builder (only needed to update electron-updater)

* Fix package-lock

* skip flaky test

* Update package

* Fix E2E test

* Fixes for enabling/disabled autoupdater

* Fixed GPO definitions

* [MM-38300] Set localhost as the test server

* blank

* Switch to s3 bucket for testing

* Update icons to match spec

* Add menu items for download/update actions

* Type and test fixes

* Fix notification circle

* Fix macOS app not restarting on Restart/Update

* Update dialog box titles

* Turn off file system check for Linux

* Changes to support deployments

* Testing autoupdater deployments to s3

* disable tests for now

* asfrehwf

* fine no windows WHATEVER

* remove windows again

* Try universal all in one

* pffftttngggguhhhh

* make sure it's working

* Missed artifacts script

* Modify destination as well

* one more time!

* Update yml files

* Oops

* add yq manually

* oof

* Fix the script to work properly

* Fix release script

* Fix script again so it runs in time

* Build version 2

* Revert build specific changes

* Lint override

* Fix build apps for PR builds

* One more change

* Add file generation for .deb repo

* Deb repo test

* skip tests for now

* Fix artifact push

* Persist after repo creation

* Put tests back

* Fix unit tests

* Enable mac generated builds temp

* Temporarily disable tests

* Fix issue where notification doesn't pop dialog box

* Try version 2 again

* Put the version back

* Attempting to debug mac app path issue

* Fix issue where Mac app will quarantine itself after first update

* Lock versions of yq

* Fix yq for mac

* As usual, Mac is difficult :P

* Add quotes to anti-quarantine command

* Change to spawn to avoid command injection

* Oops

* Nightly deployment changes (#2005)

* Test nightly deploy

* I fixed a some things

* aaaaaaaaa

* Restore old bucket

* Added progress indicator via tooltip

* Ship nightly builds to main S3 bucket

* PR feedback

* Fix a couple security exploits

* Fix opacity on light mode button

* Use large app icon

* Resize icon for Windows

* Resize icon for Mac

* Update to electron-updater final

* Remove Mac support and deb repo

* Typo

* Remove deb script

* Remove checksum function

* Removed autoUpdateSettingsPath

* Update URL

Co-authored-by: = <=>
Co-authored-by: Devin Binnie <devin.binnie@mattermost.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Devin Binnie <52460000+devinbinnie@users.noreply.github.com>
2022-03-08 11:38:38 -05:00
Devin Binnie
0ab6a1f80f [MM-42072] Fix issues with loading screen animations (#2010)
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-03-07 09:24:26 -05:00
Profesor08
1c71579bbe #1960 fix unexpected top menu focus (#1963)
* #1960 fix unexpected top menu focus

* #1960 test update

* #1960 improved test

* #1960 optimized algrithm to handle only Alt key to improve performance and avoid side effects

* #1960 tests update

* #1960 fixed 3 dit menu focus on workspace change with Alt+1, Alt+2

* #313 fix linter issue

* #1960 fix linter issue

* tests update
2022-02-08 09:23:51 -05:00
Devin Binnie
94cc15168c [MM-41559] Dynamically size URL view to avoid overlapping bottom links (#1991) 2022-02-04 11:05:06 -05:00
Devin Binnie
6803310217 [MM-35666] Re-ordered the priority of badge sources to leave session expired to last (#1955)
* Fixing some annoying things/stuff I broke

* [MM-35666] Re-ordered the priority of badge sources to leave session expired to last

* Fix tests
2022-01-25 09:51:25 -05:00
Alejandro García Montoro
c43dfe6002 MM-41042: Allow trusted plugin routes (#1956)
* Allow trusted plugin routes

The only allowed plugin route is, for now, the export endpoint for the
channel export plugin.

* Keep it simple
2022-01-20 15:19:48 -05:00
Devin Binnie
8f96fe42c7 [MM-32371] Communicate history information to webapp for disable/enabling Back/Forward buttons (#1941)
* [MM-32371] Communicate history information to webapp for disable/enabling Back/Forward buttons

* Merge'd
2022-01-10 17:38:23 -05:00
Devin Binnie
bd470459c2 [MM-40573] Stop asterisk detection on versions newer than 5.28, force space for the others (#1931)
* [MM-40573] Stop asking detection on versions newer than 5.29, force space for the others

* PR feedback and test fixes
2021-12-23 16:49:53 -05:00
Devin Binnie
c28b219362 [MM-40635] Fix notifications and badges broken during test changes (#1934) 2021-12-23 16:49:12 -05:00
Devin Binnie
8474683ff1 [MM-40603] Add timeout for alt press to make sure it doesn't interfere with OS shortcuts (#1932)
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2021-12-17 10:53:22 -05:00
Devin Binnie
c4e63fb3f9 [MM-40574] Fix for race condition where new server modal didn't show initially on Linux, resizing issues (#1865)
* FIx for linux modal sizing

* Fix race condition, merge'd
2021-12-17 09:10:08 -05:00
Devin Binnie
9b1ee66c8c [MM-32946][MM-40602] Ensure URL is valid before showing tooltip link, allow parsed URLs that aren't valid to open in browser (#1925)
* [MM-40602] Ensure URL is valid before showing tooltip link

* Rework to allow invalid URLs to display

* [MM-32946] Allow parsable URLs and open invalid URIs in browser
2021-12-16 10:06:11 -05:00
ChristophKaser
fca6a75ee4 [GH-1635] don't validate custom protocol URLs (#1889)
* don't validate custom protocol URLs

* added unit tests for invalid URLs with custom protocols
2021-12-10 11:30:10 +01:00
Devin Binnie
39fbdf45c5 [MM-40406] Add more singletons, refactor main.ts into pieces, add tests and some cleanup + tests for additional coverage (#1890)
* Refactor main.ts dependencies into singleton pattern

* Split main.ts into testable pieces, some other refactoring for singleton pattern

* Unit tests for main/app/app

* Unit tests for main/app/config

* Unit tests for main/app/initialize

* Unit tests for main/app/intercom

* Unit tests for main/app/utils

* Add some more tests to get to 70% coverage

* Fix for linux

* Fix for alternate data dir paths

* Fix E2E test
2021-12-09 15:11:55 -05:00
Devin Binnie
850eadceb9 [MM-40192] Don't send message until server is finished reloading (#1886)
* [MM-40192] Don't send message until server is finished reloading

* Error check
2021-12-09 12:44:44 -05:00
Devin Binnie
4a98dce51e [MM-40330] Unit tests for main/windows (#1885)
* [MM-40330] Unit tests for main/windows

* Merge'd
2021-12-06 11:08:39 -05:00
Devin Binnie
72f7cb4f08 [MM-40329] Unit tests for main/views (#1883)
* WIP

* [MM-40329] Unit tests for main/views

* Lint/type fix

* Merge'd
2021-12-06 10:13:26 -05:00
Devin Binnie
73056d2649 Code cleanup, update eslint from webapp, add ts-prune (#1884) 2021-12-03 16:01:49 -05:00
Devin Binnie
a4a275bd73 [MM-39491] Force Add Server modal to stay until server has been added (#1869)
* [MM-39491] Force Add Server modal to stay until server has been added

* Make the parameter optional

* Actually do the logic, add a test for the logic

* Add remove event listener
2021-11-25 09:47:20 -05:00
Devin Binnie
3b4437e480 [MM-40025] Stop app from redirecting to tabs when not logged in (#1870) 2021-11-22 09:49:53 -05:00
Devin Binnie
38270fcfe8 [MM-39885] Migrate unit tests to Jest, fleshed out tests for common/util, a bunch of cleanup (#1852)
* [MM-39885] Migrate unit tests to Jest, fleshed out tests for common/util/url

* Typo fix

* Oops

* I found more tests!

* Fixed a bug

* Oops again

* Tests for common/utils/util

* A bunch of cleanup

* Oops
2021-11-08 10:04:47 -05:00
Devin Binnie
c53e897bfd [MM-38875] Migrate E2E testing to Playwright, re-enable tests (#1800)
* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* [MM-38875] Migrate E2E testing to Playwright, re-enable tests

* Add functionality to map view names to Playwright windows

* Added search box test

* Added robot.js for automating key presses

* Add test using key strokes to navigate menu

* Reload test and added webcontentsid to test helper

* Check Ctrl+Shift+R as well

* oops

* Reorganize

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2021-10-28 13:17:10 -04:00
Devin Binnie
047db6e6e8 Changed version checking code for native window and correctly support frameless on Windows 8 (#1829) 2021-10-19 16:04:00 -04:00
Devin Binnie
12052d4e0b Fixed serverAPI throwing error on proxy server challenge, improved modals (#1820) 2021-10-18 12:46:32 -04:00
Devin Binnie
48cf6fd788 [MM-39160] Remove view from closedViews when it's automatically opened (#1791) 2021-10-06 17:05:07 -04:00
Devin Binnie
3527679648 Fix URL view cutoff for long URLs (#1793) 2021-10-06 16:32:27 -04:00
Devin Binnie
d1e5505bd4 [MM-39139] Workaround for transparency issue for BrowserViews on Electron v14.1.0+ (#1792) 2021-10-06 16:26:01 -04:00