* Rename MattermostTeam -> UniqueServer, MattermostTab -> UniqueView
* Rename 'team' to 'server'
* Some further cleanup
* Rename weirdly named function
* Rename 'tab' to 'view' in most instances
* Fix i18n
* PR feedback
* Rework tray into a class, make click behaviour consistent
* Fix issue where app wouldn't switch to workspace where the app was visible
* Fixed an issue where the app would show the window with hideOnStart enabled
* Add comment about StatusIconLinuxDbus
* Fix tests
* Move sendToRenderer to respective singletons
* Move to using ViewManager call for getting view by webContentsId
* Move show and create logic to main window, handle deep linking seperately
* Move resizing logic and event handing to mainWindow
* Move server switching logic to main/app
* Move tab switching logic to main/app, rely on showById for most usage
* Migrate remaining functions, remove windowManager objects, set up imports for self-contained singletons
* Fix E2E tests
* Update src/main/app/servers.ts
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Migrate app to ServerManager, remove view names and replace with IDs
* Fixed a test
* Fixed a bug when adding the initial server
* Merge'd
* Bug fixes and PR feedback
* Implement ServerManager, introduce id concept for identifying servers/views
* REVERT ME (eventually): Move back to old logging
* PR feedback
* PR feedback
* Revert "REVERT ME (eventually): Move back to old logging"
This reverts commit 46954a5bbed4dd29e89ca9d5217bb75af2837bb3.
* Merge'd
* Use the correct method for Logger in ServerManager
* Create central logging module for adding prefixes to differentiate logs between modules
* Turn logger into class
* Merge'd
* Rework to use class more intelligently
* Fix modalView
* Fix webContentEvents
* Update src/main/app/intercom.ts
Co-authored-by: Daniel Espino García <larkox@gmail.com>
* Shorten prefixes on object creation
---------
Co-authored-by: Daniel Espino García <larkox@gmail.com>
On Linux machines that are using a desktop env which conforms to
the FreeDesktop spec, users should have the XDG_DOWNLOAD_DIR
variable set to specify their default download directory.
This patch ensures that this directory is used if the variable is
present.
Hoping this will fix the following issue in the Mattermost snap:
https://github.com/snapcrafters/mattermost-desktop/issues/65
* Harden Calls windows URL navigation checks
* Update src/main/windows/callsWidgetWindow.ts
Co-authored-by: Eva Sarafianou <eva.sarafianou@gmail.com>
* Fix bad merge
* Extract team name to use isUrlType
* Simplify
---------
Co-authored-by: Eva Sarafianou <eva.sarafianou@gmail.com>
* Migrate intl_provider to contextBridge
* Migrate modalPreload to contextBridge
* Migrate loadingScreenPreload to contextBridge
* Migrate downloadDropdown preloads to contextBridge
* Migrate server dropdown preload to contextBridge
* Migrate urlView preload to contextBridge
* Merge all desktop API scripts into one
* Remove unused communication channel constants
* [MM-44004] Optionally turn off UTF-8 encoding for winreg if the system doesn't support it
* Fix tests
* REVERT ME: Enable msi installer
* REVERT ME: Wait for msi
* Toggle between winreg and winreg-utf8 if the latter doesn't work
* Revert MSI stuff
* Added logging for the catch at the end to see what error is occurring there
* Catch the error on registry creation as well
* Update logging a bit further
Co-authored-by: Mattermost Build <build@mattermost.com>
* 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
* 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
* Use downloads location as default when clicking "Save as". Remove update from downloads after upgrade when application starts
* Fix issue where "addedAt" was extracted from undefined object
* Fix tests
* 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