Commit Graph

54 Commits

Author SHA1 Message Date
Devin Binnie
db76a67fb5 Reduce the number of writes to the config (#2498)
* Add some logging, refactor setting config items

* Move active team to setMultiple, reduce serverInfos calls if the data is already the same

* Fix some logging

* Lint fix
2023-01-12 08:46:06 -05:00
Tasos Boulis
76caf02cb2 Maximize main window if monitor removed/changed resolution (#2486)
* Maximize main window if monitor removed/changed resolution

* Fix unit tests

* Add better handlers to support active screen changes
2023-01-03 18:11:35 +02:00
Tasos Boulis
08e94b9f55 [MM-48574] Fixed issue on windows where in some cases window resize does not work (#2441)
* Fixed issue on windows where in some cases window resize does not work

* Use silly instead of debug for window resizing functions
2022-12-01 19:44:47 +02:00
Claudio Costa
47edeea601 [MM-46993] Implement CallsWidgetWindow (#2265)
* Initial implementation of CallsWidgetWindow

* Refactor + implement widget resizing logic

* Add tests

* Enable screen sharing

* Channel link

* Add more tests

* Move constants to common file

* Extract boundsDiff into util

* Set background color on initialization

* Fix channel link

* Support installations under a subpath

* Fix path, caching issues and pass title

* [MM-48142] Fix remaining call state issues in main window (#2349)

* Update widget URL to new format

* Slightly bump widget dimensions to account for border

* Fix call state on parent window
2022-11-07 09:40:13 +01:00
Devin Binnie
6ae055728d Downloads fixes (#2331)
* Add file extension when necessary

* [MM-48017] Set the bounds for the dropdowns on finished resize
2022-10-28 16:19:59 -04:00
Tasos Boulis
a5dac0f4b2 Fix issue with downloads position after window (un)maximize (#2273) 2022-10-07 10:14:17 -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
78d9a41a7b [MM-45003] Fix the infinite redirect caused by MFA sending the login signal repeatedly (#2237)
* [MM-45003] Fix the infinite redirect caused by MFA sending the login signal repeatedly

* Update src/main/windows/windowManager.ts

Co-authored-by: Tasos Boulis <tboulis@hotmail.com>

Co-authored-by: Tasos Boulis <tboulis@hotmail.com>
2022-08-25 14:21:36 -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
0c2f0676d1 [MM-46114] More fixes for Windows resizing (#2216) 2022-08-03 10:51:13 -04:00
Devin Binnie
fcc9215f37 Fix windows resize (#2214) 2022-07-29 11:07:05 -04: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
b4a779a666 [MM-44607] Only cleanse subpath if it occurs at the beginning (#2129)
* [MM-44607] Only cleanse subpath if it occurs at the beginning

* Fix tests
2022-05-27 11:37:07 -04:00
Devin Binnie
8979c18226 [MM-44339] Remove unnecessary calls to show the main window (#2134) 2022-05-27 09:27:51 -04:00
Devin Binnie
1414bbaedf [MM-44023] Remove Settings window flash, change wording on Settings page (#2088) 2022-05-09 10:45:01 -04:00
Devin Binnie
b240d446d8 Fix issue where opening a new view causes the original view still to push (#2053)
* Fix issue where opening a new view causes the original view still to push

* Test fix
2022-04-19 10:29:19 -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
0fea052a9b [MM-43039] Upgrade and clean up dependencies (#2038)
* Upgrade Electron to v18

* Fix a test

* Upgrade ESLint and TypeScript

* Update Joi

* Clean up and upgrade dependencies

* Upgrade dev dependencies

* Upgrade to Webpack 5

* Update NOTICE.txt

* Update test runtime
2022-04-06 19:08:27 -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
d779e87937 Ensure pathname starts with / (#2000) 2022-02-08 15:20:53 -05:00
Devin Binnie
301ba8deb2 [MM-41392] Clean path name on browser pushes for subpaths (#1993) 2022-02-04 12:21:05 -05:00
Devin Binnie
4bdd8b7a45 [MM-40822] Remove app.dock.show from restoreMain (#1945)
* [MM-40822] Remove app.dock.show from restoreMain

* Removed the test
2022-01-12 09:38:45 -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
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
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
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
73056d2649 Code cleanup, update eslint from webapp, add ts-prune (#1884) 2021-12-03 16:01:49 -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
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
cde76cc15f Fixed issue with GPO navigation between tabs (#1822) 2021-10-19 09:05:49 -04:00
Devin Binnie
cc4ddc3c18 [MM-39209] Check that Channels isn't redirecting to / to prevent a refresh (#1807) 2021-10-14 09:25:21 -04:00
Devin Binnie
5e104ab335 [MM-39194] Removing call to focus() causing crash on macOS (#1801) 2021-10-08 11:38:28 -04:00
Devin Binnie
e3ea6e4c6a [MM-38936] Revert #1758, upgrade to Electron 14.1.0 (#1779)
* Revert "[MM-38649] Put top bar in a BrowserView (#1758)"

This reverts commit c914903df9.

* [MM-38936] Upgrade to Electron 14.1.0
2021-10-05 09:25:51 -04:00
Devin Binnie
c914903df9 [MM-38649] Put top bar in a BrowserView (#1758)
* [MM-38649] Tab bar as BrowserView POC

* Fixes for Mac

* Linux fixes

* Lint fix

* Make view full height

* Fix for macOS getting stuck when dragging

* Lint fix
2021-09-27 13:29:38 -04:00
Devin Binnie
2f6b7f82c4 [MM-38577] Allow exit of full screen mode using the restore button on Windows (#1744) 2021-09-22 09:42:26 -04:00
Devin Binnie
c3963424f1 [MM-38532] Force new server to display when added (#1737) 2021-09-20 13:56:12 -04:00
Devin Binnie
fc9bf1e4a3 [MM-38570] Fixed the keyboard shortcuts for switching tabs when some tabs are closed (#1739) 2021-09-20 09:14:42 -04:00
Devin Binnie
b25ccfeecf [MM-38524] Rework the closing and opening tab logic, fixed login issue (#1735)
* Rework the closing and opening tab logic to better suit adding and removing servers

* A couple more fixes

* Lint fix

* [MM-38524] Fix login issue

* Remove unneeded code
2021-09-16 13:35:07 -04:00
Devin Binnie
df57051eaa [MM-36309] Restore window menu, override shortcuts for window menu so they don't interfere (#1732) 2021-09-15 09:52:53 +02:00
Devin Binnie
082c95b094 [MM-23452][MM-36861] Fixed some configuration issues (#1725)
* [MM-23452] Show last used server and tab correctly when restarting the app

* [MM-36861] Ensure handleConfigUpdate runs
2021-09-10 10:48:00 -04:00
Devin Binnie
cfc0613d0f [MM-38310][MM-38313][MM-38315] Fixed some issues caused by having multiple tabs (#1722)
* [MM-38313][MM-38315] Fixed some issues caused by having multiple tabs

* [MM-38310] Make sure notification navigates to correct tab
2021-09-03 14:55:52 -04:00
Devin Binnie
3213a16774 [MM-36309] Completely remove menu bar from Linux/Windows (#1718) 2021-09-02 14:07:29 -04:00
Devin Binnie
78819d1dca [MM-38301] Check for admin URL when adding space for back bar (#1719) 2021-09-02 14:06:48 -04:00
Devin Binnie
9c55f8c717 [MM-36347] Force max window width of 700px (#1720) 2021-09-02 14:05:54 -04:00
Devin Binnie
37c637efe9 [MM-36432][MM-37072][MM-37073] Logic to support Focalboard and Playbooks tabs (#1680)
* Tab stuff

* Inter-tab navigation

* Close tab functionality

* [MM-36342][MM-37072] Logic to support Focalboard and Playbooks tabs

* Update to version 5.0

* Update config.yml

* Updated routes

* Update names for products

* [MM-37073] Close unneeded tabs when not using v6.0

* Merge'd

* Update config.yml

* Update config.yml

* Fix menu names

* PR feedback

* blank

* blank

* blank

* PR feedback

* Update config.yml

* PR feedback

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2021-09-01 12:45:37 -04:00
Devin Binnie
a79e7aeb4c [MM-36428][MM-36434][MM-36435] Keyboard navigation and menu updates for new tab/dropdown layout (#1695)
* [MM-36428][MM-36434][MM-36435] Keyboard navigation and menu updates for new tab/dropdown layout

* Shortcuts for Windows/Linux

* Update config.yml

* Fixed up the shortcuts

* Fixed the new server modal popping up where there are GPO teams only
2021-08-16 09:17:45 -04:00
Devin Binnie
52becc3467 [MM-37797] Re-added the check for flashing the window (#1696) 2021-08-13 10:08:00 -04:00